(一)簡單工廠模式
主要用於建立物件。新新增類時,不會影響以前的系統**。核心思想是用乙個工廠來根據輸入的條件產生不同的類,然後根據不同類過載函式得到不同的結果。
注意只有乙個工廠,工廠根據輸入引數的不同來選擇不同的類實現。
例子:要求寫乙個控制台程式,要求輸入兩個數和運算操作符,得到結果。
通常我們可以這樣寫:
#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如...