什么是工厂模式?
定义一个创建对象的接口,让这个接口决定实例化哪个对象
使用场景:需要依赖具体环境生成不同的类
1.简单工厂模式
接口类:
function interface (){}
//如果将工厂类的方法定义在此处,需要扩展的时候就会连同接口类一起改动,形成耦合
interface.prototype.getNewType=function(type){
var obj = factory.createType(type);
return obj;//如果多个类之间有共同的方法,定义在interface.prototype里,这里就可以用this.XXX.call(obj);
}
工厂类:
var factory = {
createType : function(type){
var newObj;
switch(type){
case "one" :
newObject = new One();
break;
case "two" :
newObject = new Two();
break;
········
}
return newObj;
}
}
使用:
var i = new interface();
var obj = i.getNewType("one');