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