工厂模式,可以理解为,定义一个接口,就是把参数传进去后,进过一系列的处理。然后得到相同想要的结果。否则,如果一个个对象都做相同操作的话,他这样会很消耗资源。
在JS中创建对象会习惯的使用 new 关键字和类构造函数(当然主要还是对象字面量),问题在于这样会导致两个类之间产生依赖性。工厂模式就是一种有助于消除两个类依赖性的模式。解决处理多个项数对象的问题,但是没有解决对象识别的问题(即怎样知道一个对象的类型,工厂模式判断的类型只能和Object类型匹配,这个可以用构造函数模式定义来解决)。
在JS中的表现定义一个函数(可以看做是接口),之后使用这个接口批量处理对象。
function createCar(brand,color,num){
var o = new Object();
o.brand=brand;
o.color=color;
o.num=num;
o.biubiu = function (){
console.log(this.brand + ":biubiubiu");
}
return o;
}
var car1=createCar("benz","red",2);
var car2=createCar("toyota","blue",1);
car1.biubiu(); //benz:biubiubiu
car2.biubiu(); //toyota:biubiubiu