C 設計模式 工廠模式

2021-10-01 01:24:32 字數 1444 閱讀 8974

目錄

基本概念

**及例項

工廠方法模式(factory method):定義乙個用於建立物件的介面,讓字類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類;

簡單工廠模式的最大優點在使用者工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了具體產品的依賴。

工廠方法模式實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠內部邏輯判斷移到了客戶端**來進行。

uml圖如下(這裡以計算器為例)

程式執行截圖如下:

原始碼如下:

head.h

#ifndef head_h

#define head_h

//運算相關

class operation;

class addoperation: public operation;

class multioperation: public operation;

//工廠相關

class ifactory;

class addfactory: public ifactory;

class multifactory: public ifactory;

#endif //head_h

head.cpp

#include "head.h"

#include #include using namespace std;

operation *ifactory::createoperation()

operation *addfactory::createoperation()

double operation::getresult()

addoperation::addoperation()

double addoperation::getresult()

multioperation::multioperation()

double multioperation::getresult()

operation * multifactory::createoperation()

main.cpp

#include "head.h"

#include using namespace std;

int main(int *argc, int *ar**)

C 設計模式 工廠模式

可以方便的使用繼承來實現建立方法的多樣性,區別於使用靜態方法定義簡單工廠。工廠方法模式 定義了乙個建立物件的介面,但由於子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到了子類。依賴倒置原則 要依賴抽象,不要依賴具體類 以下指導方針將避免你再oo設計中違反依賴倒置原則 盡量達到這個原則,不一定...

C 設計模式 工廠模式

建立型模式,提供了一種建立物件的最佳方式。在工廠模式中,我能在建立物件時不會對客戶端暴露建立邏輯,並且通過使用乙個公用的介面來指向新建立的物件。我們將建立乙個 shape 介面和實現 shape 介面的實體類。下一步是定義工廠類 shapefactory。factorypatterndemo,我們的...

C 設計模式 工廠模式

工廠模式的分類 簡單工廠 include include include using namespace std 基類 class carvirtual void show 0 純虛函式 protected string name 寶馬 class bmw public car void show ...