
工廠模式
工廠模式是我們最常用的實(shí)例化對(duì)象模式了,是用工廠方法代替new操作的一種模式。著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程序系統(tǒng)可以說是隨處可見。因?yàn)楣S模式就相當(dāng)于創(chuàng)建實(shí)例對(duì)象的new,我們經(jīng)常要根據(jù)類Class生成實(shí)例對(duì)象,如var a=new A() 工廠模式也是用來創(chuàng)建實(shí)例對(duì)象的,所以以后new時(shí)就要多個(gè)心眼,是否可以考慮使用工廠模式,雖然這樣做,可能多做一些工作,但會(huì)給你系統(tǒng)帶來更大的可擴(kuò)展性和盡量少的修改量
模式作用
- 對(duì)象的構(gòu)建十分復(fù)雜
- 需要依賴具體的環(huán)境創(chuàng)建不同實(shí)例
- 處理大量具有相同屬性的小對(duì)象
注意事項(xiàng)
- 不能濫用工廠,有時(shí)候僅僅是給代碼增加復(fù)雜度
例子:
//工廠應(yīng)該有廠長,來決定運(yùn)行哪條生產(chǎn)線
// 消費(fèi)者->子類
var gongchang={};//定義工廠
//工廠生產(chǎn)衣服方法
gongchang.chanyifu=function(argument){
this.gongren=50; //工人屬數(shù)量
this.shengchangxiaolv=2;//生產(chǎn)效率
console.log("我們有"+this.gongren+"個(gè)工人");
console.log("生產(chǎn)了"+this.gongren*this.shengchangxiaolv+"件衣服")
}
//工廠生產(chǎn)鞋子方法
gongchang.chanxie=function(){
console.log("產(chǎn)鞋子");
}
gongchang.yunshu=function(){
console.log("運(yùn)輸");
}
gongchang.changzhang=function(para){
return new gongchang[para]();
//構(gòu)造函數(shù)模式 單例模式
}
var me=gongchang.changzhang('chanyifu'); //我們有50個(gè)工人 生產(chǎn)了100件衣服