例如我设计一段代码: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等。
还有一个问题,第二种方式能叫简单工厂模式吗?
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尽量写简练点