Js設計模式(建立型)之二 工廠模式

2022-05-29 09:30:12 字數 2130 閱讀 6880

工廠模式也是一種物件建立概念的建立模式。乙個工廠能提供乙個建立物件的公共介面,我們可以在其中指定我們希望被建立的工廠物件的型別。

簡單工廠模式是工廠模式中最基本的一種。通過定義乙個工廠類,根據引數例項化具體的某個產品類。

//

js設計模式之簡單工廠

function

factory(role)

function

xinyuevip2()

function

xinyuevip1()

switch

(role)

}let xinyuevip3= factory("xinyuevip3");

console.log(xinyuevip3);

let xinyuevip2= factory("xinyuevip2");

console.log(xinyuevip3);

let xinyuevip1= factory("xinyuevip1");

console.log(xinyuevip3);

factory就是乙個工廠,factory有三個函式分別是對應不同的產品,switch中有三個選項,這三個選項相當於三個模具,當匹配到其中的模具之後,將會new乙個建構函式去執行生產工廠中的function;但是我們發現上面的簡單工廠模式會有一定的侷限性,就是如果我們需要去新增新的產品的時候,我們需要去修改兩處位置(需要修改function和switch)才能達到新增新產品的目的;

於是我們將簡單工廠模式進行改良:

//

js設計模式之簡單工廠改良版

function

factory(role)

switch

(role));

break

;

case " xinyuevip2":

return

new xinyuevip ();

break

;

case " xinyuevip1":

return

new xinyuevip ();

break

;   }

} let xinyuevip3= factory("xinyuevip3");

console.log(xinyuevip3);

let xinyuevip2= factory("xinyuevip2");

console.log(xinyuevip3);

let xinyuevip1= factory("xinyuevip1");

console.log(xinyuevip3);

工廠裡面的函式相當於乙個萬能摸具,switch裡面給我們什麼,我們就加工成什麼樣的;自然就解決了新增商品需要修改兩處**的問題;

工廠方法模式是對簡單工廠模式的稍微的改進,它定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。針對上述問題,假如每次新增一種新的產品,都要去更改工廠內部,工廠方法模式就是將這個大廠拆分出各個小廠,每次新增新的產品讓小廠去生產,大廠負責指揮就好了。

//

js設計模式之工廠方法模式

function

factory(role)

else

} factory.prototype =,

" xinyuevip2":function

(),    " xinyuevip1":function

()  }

let xinyuevip3= factory("xinyuevip3");

console.log(xinyuevip3);

let xinyuevip2= factory("xinyuevip2");

console.log(xinyuevip3);

let xinyuevip1= factory("xinyuevip1");

console.log(xinyuevip3);

工廠方法模式關鍵核心**就是工廠裡面的判斷this是否屬於工廠,也就是做了分支判斷,這個工廠只做我能生產的產品,如果你的產品我目前做不了,請找其他工廠代加工;

如果說簡單工廠和工廠方法兩種模式是用來生產產品的,那麼可以說抽象工廠是用來生產工廠的。

js建立型設計模式 簡單工廠模式

定義 工廠可以建立很多物件,根據客戶需求的不同,返回不同的建立物件 es5 定義 工廠可以建立很多物件,根據客戶需求的不同,返回不同的建立物件 籃球 var basketball function basketball.prototype getballsize function basketbal...

建立型設計模式 工廠模式

1 簡單工廠 只有乙個工廠類,在工廠中根據產品的型別每次只能生產指定型別的產品 class factory 2 工廠方法 每類工廠只能生產其對應的一類產品 factorya producta factoryb productb 3 抽象工廠 每類工廠可以生產其對應的一族產品 e.g.factorya...

設計模式 建立型 工廠模式

今天開始工廠三兄弟的工廠模式,工廠模式與簡單工廠相似,區別就在於工廠類被進一步細化,簡單工廠的工廠類中由乙個方法根據具體需求建立具體的產品。而工廠模式中,每乙個產品對應乙個工廠。也就是乙個工廠不再像簡單工廠那樣,乙個工廠可以生產不同的商品。在工廠模式中,每乙個商品都對應乙個生產該商品的工廠。如下 食...