JS工廠模式轉變為複雜工廠模式

2021-10-25 03:31:34 字數 2371 閱讀 2543

** 工廠模式轉變為複雜工廠模式–也就是由粗粒度變成細粒度。也就是每個物件實現的方法的變得更具體化。**

看下面**,同上文一樣要先插入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設計模式 工廠模式

一句話總結 在建構函式外面增加乙個函式,每次建立的時候,呼叫外層函式,不用去管建構函式的內部是如何實現的。去麵館吃麵,給老闆說 來碗雜醬麵 老闆把麵端上來。在這個過程中,我們不會去關心,面是怎麼做出來的,是如何做的。給老闆說 來碗雜醬麵 就給你做雜醬麵,來碗番茄面,就給你做番茄面。這就是乙個工廠模式...