見原始碼和注釋:
//工廠方法模式
/*工廠方法模式之精髓:
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使乙個類的例項化延遲到子類。
什麼情況下用呢:
能用到簡單工廠的地方都能用到。
優點: 相比較簡單工廠而言:
簡單工廠模式其特點是在工廠類中包含了必要的邏輯判斷,根據客戶端動態選擇
例項化相關的類,出去了客戶端與其功能的依賴;
但如果要增加乙個新的功能,則必須要增加工廠類的邏輯判斷,這就違背了
開放-封閉原則中的封閉原則(對類進行修改),所以工廠方法應運而生。
*/#include #include using namespace std;
//運算抽象類
class coperation
int m_inuma;
int m_inumb;
virtual int getresultnow() };
//加法類
class coperationadd : public coperation
};//減法類
class coperationsub : public coperation
};//抽象工廠
class cfactory
virtual coperation *createoperation() };
//加法工廠
class caddfactory : public cfactory
};//減法工廠
class csubfactory : public cfactory
};int main()
//例項化操作
coperation *poperation = pfactory->createoperation();
if (null == poperation)
poperation->m_inuma = 2;
poperation->m_inumb = 4;
cout << poperation->getresultnow() << endl;
delete pfactory;
delete poperation;
return 0;
}
輸出:-2
請按任意鍵繼續. . .
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
設計模式(四) 工廠方法模式
一 工廠方法模式介紹 工廠方法模式 定義了乙個建立物件的抽象方法,由子類決定要例項化的類。工廠方法模式將物件的例項化推遲到子類。二 應用 在簡單工廠模式的應用上,用工廠方法模式進一步修改 將披薩專案的例項化功能抽象成抽象方法,在不同的口味點餐子類中具體實現。類圖 1 抽象披薩類 public abs...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...