本文通过汽车生产的比喻,详细解析JavaScript中工厂模式的演进过程。从手动创建对象到封装函数,再到参数化与外部方法引用,逐步展示如何高效创建多个具有相同属性的对象实例,帮助开发者理解对象创建的最佳实践。
代码示例如下:
60年代:手动创建对象//20世纪60年代的汽车制造工厂
var ocar=new Object;
ocar.color="black";
ocar.doors=2;
ocar.pinpai="解放";
ocar.showPinpai=function()
{
alert(this.pinpai);//需要一条生产线,每生产一辆汽车都需建立新的生产线
}
70年代:封装工厂函数//20世纪70年代的汽车制造工厂
function createcar()
{
var oTempCar=new Object;
oTempCar.color="black";
oTempCar.doors=4;
oTempCar.pinpai="桑塔纳";
oTempCar.showPinpai=function()
{
alert(this.pinpai);//实现规模化生产,一条生产线可制造多辆汽车
}
return oTempCar;
}
80年代:参数化工厂函数//20世纪80年代汽车生产
function createcar(sColor,iDoors,sPinpai)
{
var oTempCar=new Object;
oTempCar.color=sColor;
oTempCar.doors=iDoors;
oTempCar.pinpai=sPinpai;
oTempCar.showPinpai=function()
{
alert(this.pinpai);//实现高效生产,一次性构建完成
}
return oTempCar;
}
90年代:外部方法引用与优化//20世纪90年代汽车生产
function showPinpai()
{
alert(this.color);
}
function createcar(sColor,iDoors,sPinpai)
{
var oTempCar=new Object;
oTempCar.color=sColor;
oTempCar.doors=iDoors;
oTempCar.pinpai=sPinpai;
oTempCar.showPinpai=function()
return oTempCar;
}
var oBmw=createcar("black",4,"BMW");
oBmw.showColor();//结合一次性构建与组装生产模式