工廠方法模式(factory method),定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類中。
工廠方法模式在實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行。你想要加功能,本來是改工廠類的,而現在是修改客戶端**。
myoperator類 定義運算元和得到結果的介面
#ifndef _my_operator_hpp
#define _my_operator_hpp
class
myoperator
virtual
double
getresult(){};
protected
:
double
a;
double
b;};
#endif
//addoperator類
#ifndef _add_operator_hpp
#define _add_operator_hpp#include
"myoperator.hpp
"class addoperator:public
myoperator
virtual
double getresult() override
};#endif
//suboperator 類
#ifndef _sub_operator_hpp
#define _sub_operator_hpp#include
"myoperator.hpp
"class suboperator:public
myoperator
virtual
double getresult() override
};#endif
//myfactory 類 僅僅乙個介面類
#ifndef _sub_operator_hpp
#define _sub_operator_hpp#include
"myoperator.hpp
"class suboperator:public
myoperator
virtual
double getresult() override
};#endif
//addfactory 類
#ifndef _addfactory_hpp
#define _addfactory_hpp#include
"myfactory.hpp
"#include
"myoperator.hpp
"#include
"addoperator.hpp
"class addfactory:public
myfactory
};#endif
//subfactory 類
#ifndef _sub_factory_hpp
#define _sub_factory_hpp#include
"myfactory.hpp
"#include
"myoperator.hpp
"#include
"suboperator.hpp
"class subfactory:public
myfactory
};#endif
//客戶端程式
#include#include
"addfactory.hpp
"#include
"subfactory.hpp
"using
namespace
std;
intmain()
初識設計模式 chapter 08 模板方法模式
直到目前,我們的議題都繞著封裝轉,我們已經封裝了物件建立 方法呼叫 複雜介面 鴨子 披薩。接下來呢?我們將要深入封裝演算法塊,好讓子類可以在任何時候都可以將自己掛接進運算裡。我們甚至會在本章學到乙個受到好萊塢影響而啟發的設計原則。有些人沒有咖啡就活不下去,有些人則離不開茶。兩者的共同成分是什麼,當然...
工廠方法模式 設計模式 08
工廠方法模式遵循了,開放封閉式原則,我們直接用案例來體現 定義乙個電腦介面 public inte ce icomputer 電腦介面卡實現電腦介面 public class adapter implements icomputer 電腦主機板實現電腦 public class board impl...
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...