6-JavaScript設計模式——工廠模式

我們先簡單說一說工廠模式的優點:

1.工廠類集中了所有對象的創建,便於對象創建的統一管理

2.對象的使用者僅僅是使用產品,實現了單一職責

3.便於擴展,如果新增了一種業務,只需要增加相關的業務對象類和工廠類中的生產業務對象的方法,不需要修改其他的地方。

4.工廠模式也有延遲實例化的作


代碼演示:
// 建立工廠單體對象
var CarFactory = {
  createCar : function(type){
    return eval('new ' + type + '()');
  }
};

// 類 Benz
function Benz(){}
Benz.prototype.sayHello = function(){
  alert('Hello,我是奔馳車...');
};

// 類 Bmw
function Bmw(){}
Bmw.prototype.sayHello = function(){
  alert('Hello,我是寶馬車...');
};

// 測試:通過工廠進行實例化
var b1 = CarFactory.createCar('Benz');
var b2 = CarFactory.createCar('Bmw');

b1.sayHello();// Hello,我是奔馳車...
b2.sayHello();// Hello,我是寶馬車...

什麼時候使用工廠模式

以下幾種情景下工廠模式特別有用:

  1. 對象的構建十分複雜
  2. 需要依賴具體環境創建不同實例
  3. 處理大量具有相同屬性的小對象

什麼時候不該用工廠模式

不濫用運用工廠模式,有時候僅僅只是給代碼增加了不必要的複雜度,同時使得測試難以運行下去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章