** 工廠模式轉變為複雜工廠模式–也就是由粗粒度變成細粒度。也就是每個物件實現的方法的變得更具體化。**
看下面**,同上文一樣要先插入commonutil.js檔案。
// 複雜工廠模式(由粗粒度--變得更細粒度)
// 首先有乙個賣車的商店--就必須要有生產車的工廠
// 這裡就只是提供賣車的方法
function carshop()
;//變成乙個抽象類 只能被繼承
carshop.prototype =
, abstractsellcar: function (),
};// 賣車的商店有很多--要買什麼車--就到專門賣那種車的商店--買車--生產車
function benzcarshop()
; bh.
extend
(benzcarshop, carshop)
; benzcarshop.prototype =
else
}return car;},
};function audicarshop()
; bh.
extend
(audicarshop, carshop)
; audicarshop.prototype =
else
}return car;},
};// 生產車的工廠 只是生產車
var ca***ctory =,}
;// 介面類的實現
var carinte***ce =
newbh.inte***ce
('carinte***ce',[
'start'
,'run'])
;// 車的公共的方法
function basecar()
; basecar.prototype =
, run: function (),
};// 車的型別
function benz()
; bh.
extend
(benz, basecar)
;//繼承公共的方法
benz.prototype.benzdrive = function ();
function benz1()
; bh.
extend
(benz1, basecar)
;//繼承公共的方法
benz1.prototype.benz1drive = function ();
function bmw()
; bh.
extend
(bmw, basecar)
;//繼承公共的方法
bmw.prototype.bmwdrive = function ();
function audi1()
;//一種車又有很多種型號
bh.extend
(audi1, basecar)
;//繼承公共的方法
audi1.prototype.audi1drive = function ();
function audi()
; bh.
extend
(audi, basecar)
;//繼承公共的方法
audi.prototype.audidrive = function ();
// 檢測
// var shop=new carshop();
// var car=shop.sellcar('audi');
// car.start();
// 檢測 買賓士 就到賣賓士的商店
var shop1 =
newbenzcarshop()
;var car1 = shop1.
sellcar
('benz1');
car1.
start()
;// 檢測 買奧迪 就到賣奧迪的商店
var shop2 =
newaudicarshop()
;var car2 = shop2.
sellcar
('audi1');
car2.
start()
;<
/script>
總結:由之前乙個賣車的商店(什麼車都有)–變成專門賣一種牌子的車的商店(裡面也有很多態號)–通過訪問客戶要買哪種牌子的車到對應商店買車–然後在該商店找到自己要的那種型號的車–然後通過生產車的工廠直接動態生成–然後檢測介面–返回。 js工廠模式
設計工廠模式是為了建立物件。通常在類或者類的靜態方法中實現,具有兩個目標。其中乙個是 當建立相似物件時執行重複操作 另外乙個目標是 編譯時不知道具體型別 類 的情況下,為工廠客戶提供一種建立物件的介面。實現如下 父構造器 function carmaker 在原型中新增共享的方法 carmaker....
js設計模式 工廠模式
一.介紹 工廠模式主要出現在物件導向建立例項的過程中,其本質是為了更方便生成例項,因此 在遇到使用new時,就要是否要使用工廠模式 二.實現 1.uml類圖 2.實現 class product init fn1 fn2 class creator 測試 let creator new creato...
js設計模式 工廠模式
一句話總結 在建構函式外面增加乙個函式,每次建立的時候,呼叫外層函式,不用去管建構函式的內部是如何實現的。去麵館吃麵,給老闆說 來碗雜醬麵 老闆把麵端上來。在這個過程中,我們不會去關心,面是怎麼做出來的,是如何做的。給老闆說 來碗雜醬麵 就給你做雜醬麵,來碗番茄面,就給你做番茄面。這就是乙個工廠模式...