工廠方法模式,經過對產品類的抽象使其建立業務,主要負責建立多類產品的實例。
前面記錄了簡單工廠模式,可是需求時不斷變化的,當需求簡單時,直接建立對象就行,需求多了就能夠用簡單工廠重構,可是當需求不斷增長時,咱們不只要添加類,還要修改工廠函數,這樣很不友好,全部還須要更好的模式來適應更多的需求。php
安全模式類能夠屏蔽使用類的錯誤形成的錯誤。以下:java
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中實現工廠方法模式只須要參考其核心思想便可。能夠將工廠方法看做是一個實例化對象的工廠類,安全起見,採用安全模式類,將建立對象的基類放在工廠方法類的原型中便可。安全