javascript设计模式的工厂模式示例说明

javascript设计模式的工厂模式示例说明
Javascript工厂的原始方式

因为对象的属性可以在创建对象后动态定义,它将在Javascript首次引入时编写以下代码。

复制代码代码如下所示:
无功控=新的对象;
ocar.color =蓝色;
ocar.doors = 4;
ocar.mpg = 25;
ocar.showcolor =函数(){
警戒(这个颜色);
};
在上面的代码中,创建对象的车,然后给它一些属性:它的颜色是蓝色的,有四个门,一加仑油能跑25英里,最后一个属性实际上是一个函数指针,这意味着该属性是一个方法,这段代码被执行后,你可以使用对象的车。但这里有个问题,那就是,你可能需要创建多车的情况下,这显然不是一个好办法。

解决方案:工厂方法
为了解决这个问题,开发人员创建工厂的功能,可以创建并返回一个特定类型的对象,例如,createcar()函数可用于封装创建上述汽车对象的操作

复制代码代码如下所示:
功能createcar(scolor,idoors,停){
无功otempcar =新的对象;
otempcar.color = scolor;
otempcar.doors = idoors;
otempcar.mpg =问题;
otempcar.showcolor =函数(){
警戒(这个颜色);
};
返回otempcar;
}

无功ocar1 = createcar(红
无功ocar2 = createcar(蓝

ocar1.showcolor(红色); / /输出
OCar2.showColor (blue); / / output
调用这个工厂函数会创建一个新的对象并给它所有必要的属性,并对createcar添加参数()函数来指定颜色,门窗的汽车对象MPG属性来创建。这使得两个对象具有相同的属性,但具有不同的属性值。这个方法不好的事情是,每当一辆车对象创建时,即称createcar功能一次,它将创建显示颜色对话框的方法为每个对象的反复,这是没有必要的时刻,但事实上,每一个对象都将共享相同的功能。所以我们尽量申报方法性能的功能外。

工厂功能外定义对象的方法
一些开发人员定义了工厂功能之外的对象的方法,然后通过属性指向方法以避免这个问题:

复制代码代码如下所示:
功能显示颜色对话框(){
警戒(这个颜色);
}

功能createcar(scolor,idoors,停){
无功otempcar =新的对象;
otempcar.color = scolor;
otempcar.doors = idoors;
otempcar.mpg =问题;
otempcar.showcolor =显示颜色对话框;
返回otempcar;
}

无功ocar1 = createcar(红
无功ocar2 = createcar(蓝

ocar1.showcolor(红色); / /输出
ocar2.showcolor(蓝色); / /输出
在上面的改写代码,功能显示颜色对话框()函数定义之前createcar()。在createcar(),对象是给定一个指针的存在显示颜色对话框()函数。在功能上,这解决了重复一个函数对象的创建问题;但语义、功能不一样一个对象的方法。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部