工廠模式也是一種物件建立概念的建立模式。乙個工廠能提供乙個建立物件的公共介面,我們可以在其中指定我們希望被建立的工廠物件的型別。
簡單工廠模式是工廠模式中最基本的一種。通過定義乙個工廠類,根據引數例項化具體的某個產品類。
//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...
設計模式 建立型 工廠模式
今天開始工廠三兄弟的工廠模式,工廠模式與簡單工廠相似,區別就在於工廠類被進一步細化,簡單工廠的工廠類中由乙個方法根據具體需求建立具體的產品。而工廠模式中,每乙個產品對應乙個工廠。也就是乙個工廠不再像簡單工廠那樣,乙個工廠可以生產不同的商品。在工廠模式中,每乙個商品都對應乙個生產該商品的工廠。如下 食...