設計模式 簡單工廠(一)

2021-08-01 10:30:04 字數 1150 閱讀 1156

(一)簡單工廠模式

主要用於建立物件。新新增類時,不會影響以前的系統**。核心思想是用乙個工廠來根據輸入的條件產生不同的類,然後根據不同類過載函式得到不同的結果。

注意只有乙個工廠,工廠根據輸入引數的不同來選擇不同的類實現。

例子:要求寫乙個控制台程式,要求輸入兩個數和運算操作符,得到結果。

通常我們可以這樣寫:

#include#include#includeusingnamespace std;

//基類

classcoperation

return result;

}};int main()

可以看到,如果我們要想新增其他運算就要修改類coperation,物件導向基本三個要求:一是可維護。就是要改,只需要改要改之處,第二,可復用,第三可擴充套件。下面將利用簡單工廠模式進行**重寫:

#include#includeusingnamespace std;

//基類

classcoperation

};//加法

classaddoperation : public coperation

};//減法

classsuboperation : public coperation

};//乘法

classmuloperation : public coperation

};//除法

classdivoperation : public coperation};

//工廠類

classccalculato***ctory;

coperation*ccalculato***ctory::create(constchar coperator)

return oper;}

//客戶端

int main()

可以看到,宣告了乙個運算基類coperation,它有4個子類,定義了乙個工廠ccalculato***ctory

,使用者通過傳入引數來確定用coperation的哪個子類。核心思想是用乙個工廠來根據輸入的條件產生不同物件,然後根據不同類過載函式得到不同的結果。

工廠設計模式一 簡單工廠模式

工廠設計模式實現了建立者和呼叫者的分離。類別 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠模式 遵循的設計原則 1.ocp 開閉原則,open closed principle 乙個軟體的實體應當那個對擴充套件開放,對修改關閉 2.dip 依賴倒置原則,dependence inversion ...

工廠設計模式(一) 簡單工廠模式

工廠設計模式可分為 簡單工廠模式 工廠方法模式 抽象工廠模式 第一篇我們來聊聊 理解 假設某些例項具有相同的方法,可以根據引數的不同返回不同的例項,被建立的例項通常都具有共同的父類,那麼可以考慮使用簡單設計模式來實現。例如可以實用簡單工廠模式設計乙個可以建立不同幾何形狀 如圓形 方形和三角形等 的繪...

設計模式 一 工廠模式 簡單工廠

以前總覺得設計模式純屬扯淡,浪費精力,10 能搞定的事情非要寫那麼多的介面或者實現類.為什麼要用設計模式,開發有乙個重要的原則 對修改關閉,對擴充套件開放.因為如果把 全部都雜糅到乙個類中,第一 復用性太差,擴充套件性不強.第二,修改起來一改巨改,改動即意味著要增加測試人員工作量,且引入修改bug如...