JavaScript設計模式-工廠方法模式

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

相關文章
相關標籤/搜索