首页 >

javascript设计模式之工厂模式示例讲解

web前端|js教程javascript设计模式之工厂模式示例讲解
javascript设计模式,工厂模式
web前端-js教程
javaScript工厂方式原始的方式

因为对象的属性可以在对象创建后动态定义,这在 JavaScript 最初引入时都会编写类似下面的代码

影院源码 freekan,Ubuntu安装按键启动,tomcat9 伪装成7,聚焦网络爬虫又称,php程序员驻场开发价格,seo们多少lzw

var oCar = new Object;
oCar.color = "blue";
oCar.doors = 4;
oCar.mpg = 25;
oCar.showColor = function() {
alert(this.color);
};

在上面的代码中,创建对象 car。然后给它设置几个属性:它的颜色是蓝色,有四个门,每加仑油可以跑 25 英里。最后一个属性实际上是指向函数的指针,意味着该属性是个方法。执行这段代码后,就可以使用对象 car。不过这里有一个问题,就是可能需要创建多个 car 的实例,这显然不是很好的方式。

解决方案:工厂方法
要解决该问题,开发者创造了能创建并返回特定类型的对象的工厂函数。例如,函数 createCar() 可用于封装前面列出的创建 car 对象的操作:

体验站源码下载,ubuntu 终止进程命令,tomcat二级域名访问,爬虫编程的用途,php怎么和数据库连接,yoast seo安装lzw

function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = function() {
alert(this.color);
};
return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor(); //输出 "red"
oCar2.showColor(); //输出 "blue"

调用此工厂函数,将创建新对象,并赋予它所有必要的属性,给 createCar() 函数加上参数,即可为要创建的 car 对象的 color、doors 和 mpg 属性赋值。这使两个对象具有相同的属性,却有不同的属性值。该方法有个不好的地方在于每创建一个car对象(即调用一次createCar函数)都会重复的为每个对象创建showColor 方法,而这时没有必要的而事实上,每个对象都共享同一个函数。于是我们尝试在函数之外去声明其方法属性。

在工厂函数外定义对象的方法
有些开发者在工厂函数外定义对象的方法,然后通过属性指向该方法,从而避免这个问题:

唯美个人博客网站源码,vscode自动补全设置,ubuntu赚钱宝,tomcat 无限循环,ios.中的sqlite,动态图标插件,前端生成ios和安卓的框架,R语言爬虫爱奇艺,php访问html,seo图片优化排名,html5 源码网站,怎么用易语言制作网页游戏辅助,discuz小米手机模板lzw

function showColor() {
alert(this.color);
}

function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = showColor;
return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor(); //输出 "red"
oCar2.showColor(); //输出 "blue"

在上面这段重写的代码中,在函数 createCar() 之前定义了函数 showColor()。在 createCar() 内部,赋予对象一个指向已经存在的 showColor() 函数的指针。从功能上讲,这样解决了重复创建函数对象的问题;但是从语义上讲,该函数不太像是对象的方法。


javascript设计模式之工厂模式示例讲解
  • 基于php设计模式中工厂模式详细介绍【PHP】
  • 基于php设计模式中工厂模式详细介绍【PHP】 | 基于php设计模式中工厂模式详细介绍【PHP】 ...

    javascript设计模式之工厂模式示例讲解
  • javascript 模式设计之工厂模式详细说明【javascript】
  • javascript 模式设计之工厂模式详细说明【javascript】 | javascript 模式设计之工厂模式详细说明【javascript】 ...

    javascript设计模式之工厂模式示例讲解
  • javascript设计模式 PHP面向接口编程 耦合设计模式 简单范例
  • javascript设计模式 PHP面向接口编程 耦合设计模式 简单范例 | javascript设计模式 PHP面向接口编程 耦合设计模式 简单范例 ...