日期:2014-05-16  浏览次数:20394 次

请问在设计普通函数时,是否也要考虑使用简单工厂模式,还是简单工厂模式专门用在类中?
例如我设计一段代码:

function f(a){
    var b;
    switch(a){
      case '1':
        b=f1();
break;
      case '2':
        b=f2();
break;      
      default:
    b=f3()
    } 
function f1(){ return 'one'};
function f2(){ return 'two'};
function f3(){ return 'three'};
    return b 
}
var b=f('3')
alert(b)



按照简单工厂的样子给上面的代码重构如下:

function f(a){
    var b;
    b=numberFactory.choose(a);
    return b 
}
function f1(){ return 'one'};
function f2(){ return 'two'};
function f3(){ return 'three'};
var numberFactory={choose:function(a){
var b;
switch(a){
  case '1':
b=f1();
break;
  case '2':
b=f2();
break;      
  default:
b=f3()

    return b
    }
}
var b=f('1')
alert(b)


请问有这个必要吗?我觉得用了第二种方式,反而增加了全局函数f1,f2,f3,但好处是代码结构比较清晰,易于继续添加f4,f5等。
还有一个问题,第二种方式能叫简单工厂模式吗?

------解决方案--------------------
我写JS理念就是要简练,结构清晰就可以了
js 的语法灵活,是动态解析型(JS代码少速度提高),网络下载(文件小速度提高)
所以JS尽量写简练点