JavaScript设计模式-工厂方法模式
工厂方法模式,通过对产品类的抽象使其创建业务,主要负责创建多类产品的实例。
前面记录了简单工厂模式,但是需求时不断变化的,当需求简单时,直接创建对象就行,需求多了就可以用简单工厂重构,但是当需求不断增加时,我们不仅要添加类,还要修改工厂函数,这样很不友好,所有还需要更好的模式来适应更多的需求。
安全模式类
安全模式类可以屏蔽使用类的错误造成的错误。如下:
var Demo = function () { if(!(this instanceof Demo)){ return new Demo(); } } var d = Demo(); d.show();//成功获取
安全的工厂方法
//安全模式创建的工厂类 var Factory = function (type,content) { if(this instanceof Factory){ var s = new this[type](content); return s; }else { return new Factory(type,content); } }
//工厂原型中设置所有类型数据对象的基类 Factory.prototype = { java:function (content) { }, javaScript1:function (content) { }, ui:function (content) { }, php:function (content) { } };
工厂方法模式本意是将实际创建对象工作推迟到子类当中,这样核心类就成了抽象类,但是JavaScript没有像传统创建类那样的方式轻易创建抽象类,所以在JavaScript中实现工厂方法模式只需要参考其核心思想即可。可以将工厂方法看作是一个实例化对象的工厂类,安全起见,采用安全模式类,将创建对象的基类放在工厂方法类的原型中即可。
相关推荐
cas的无名 2020-08-02
dalang 2012-08-28
liupinghui 2019-06-21
TingBen 2019-03-14
PythonBiglove 2016-03-02
Haopython 2019-01-18
蔷薇部落 2011-12-22
liyongkuan 2016-03-16
PHP100 2019-03-28
MATLAB 2018-05-27
化身戏子 2018-03-10
vczh的日常 2018-02-09
MATLAB 2018-01-29
航通社 2017-12-29
数据分析侠 2017-12-26
迷思 2017-12-17
vczh的日常 2017-11-29