簡單工廠模式:又稱為靜態工程發放模式,屬於類的建立型模式,通過它根據自變數的不同返回不同的類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。
簡單工廠模式的優點:工廠類含有必要的判斷邏輯,可以決定在什麼時候建立哪乙個chanp類的例項,客戶端可以免除直接建立產品物件的責任,而僅僅「消費產品」。簡單工廠模式通過這種方法實現了建立和使用物件的分離。客戶端**簡介,無需知道所建立具體產品的類名,只需要知道相應的引數,可以減少使用者的記憶負擔。
簡單工廠模式的缺點:工廠類集中了所有產品建立邏輯,一旦不能正常工作,整個系統都要受到影響。增加了系統中類的數量,增加了系統的複雜度和理解難度。系統擴充套件困難,一旦新增新產品就不得不修改工廠邏輯,有可能造成工廠邏輯過於複雜,不利於擴充套件。簡單工廠模式通常使用靜態工廠方法,造成工廠角色無法形成基於繼承的等級結構。
具體事例:
有乙個oem製造商**做
hp膝上型電腦
(laptop),後來該製造商得到了更多的品牌膝上型電腦的訂單
acer
,lenovo
,dell
,該oem
商發現,如果一次同時做很多個牌子的本本,有些不利於管理。利用工廠模式改善設計
。
#includeusing namespace std;
class laptop
virtual void product(){}
};class dell : public laptop
void product()
};class acer : public laptop
void product()
};class lenovo : public laptop
void product()
};class hp : public laptop
void product()
};class factory
laptop* createlaptop(string ch);
};laptop* factory::createlaptop(string ch)
int main()
設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...
設計模式(簡單工廠模式 工廠模式 抽象工廠模式)
當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...
設計模式 簡單工廠設計模式
請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...