(四)工廠方法模式

2021-07-05 08:29:15 字數 1179 閱讀 2821

見原始碼和注釋:

//工廠方法模式

/*工廠方法模式之精髓:

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使乙個類的例項化延遲到子類。

什麼情況下用呢:

能用到簡單工廠的地方都能用到。

優點: 相比較簡單工廠而言:

簡單工廠模式其特點是在工廠類中包含了必要的邏輯判斷,根據客戶端動態選擇

例項化相關的類,出去了客戶端與其功能的依賴;

但如果要增加乙個新的功能,則必須要增加工廠類的邏輯判斷,這就違背了

開放-封閉原則中的封閉原則(對類進行修改),所以工廠方法應運而生。

*/#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產...