一、uml類圖
物件導向程式設計時,在整理物件之間關係時,用uml類圖梳理,會更加清晰。
簡單工廠模式,利用乙個工廠來生產不同型別的物件,達到服務層**根據需求更改時,客戶端**介面不用進行修改。客戶端可直接建立自己新增的需求物件並進行操作。由於比較簡單,見**很容易理解,故不做贅述。
//定義基礎操作類
#ifndef _moperatordp_hpp
#define _moperatordp_hpp
class
operatordp
double getnum2() const
void setnum1(double num)
void setnum2(double num)
virtual
double
getresult(){};
private
:
double
num1;
double
num2;
};#endif
//定義加法類
#ifndef _madddp_hpp
#define _madddp_hpp#include
"operatordp.hpp
"class adddp : public
operatordp
};#endif
//定義減法類
#ifndef _subtractdp_hpp
#define _subtractdp_hpp#include
"operatordp.hpp
"class subtractdp:public
operatordp
};#endif
//定義乘法類
#ifndef _multiplydp_hpp
#define _multiplydp_hpp#include
"operatordp.hpp
"class multiplydp:public
operatordp
};#endif
//定義除法類
#ifndef _dividedp_hpp
#define _dividedp_hpp#include
#include
#include
"operatordp.hpp
"using
namespace
std;
class dividedp : public
operatordp
else
}private
:
static
const
double
e;};
const
double dividedp::e = 0.000000000001
;#endif
//定義工廠類
#ifndef _factory_hpp
#define _factory_hpp#include
#include
"adddp.hpp
"#include
"multiplydp.hpp
"#include
"subtractdp.hpp
"#include
"dividedp.hpp
"#include
"operatordp.hpp
"using
namespace
std;
class
factory
}};#endif
//通過**我們很容易就能發現,如果客戶想新增加乙個需求比如指數運算,那麼只需新建乙個繼承operatordp的指數類,然後實現裡面的方法getresult()就行了。並在工廠的swith中新增對應的質數運算,對客戶端來說,只需呼叫工廠生產對應的物件,並呼叫物件的方法getresult(),從而得到結果。可見客戶使用方法沒變。服務端**也實現了解耦,使**更加易於維護。客戶端測試
#include#include
"operatordp.hpp
"#include
"factory.hpp
"using
namespace
std;
intmain()
Chapter01 物件入門
角度 從概念上將各式各樣的資料和功能封裝到了一起 體系角度 物化 向目標物件發訊息或發請求 就是呼叫目標物件的目標方法,例如向light型別 燈型別 的物件lt 燈物件 傳送開燈訊息 lt.on light lt newlight lt.on 向lt物件傳送開燈訊息 發訊息或發請求內部資料型別的設計...
Chapter 01 穿越時空的迷霧
編譯器的效率包括兩個方面 執行效率 的執行速度 和編譯效率 產生可執行 的速度 執行效率起決定性作用 ken thompson在pdp 11上重新用組合語言實現了unix,dr創立了能夠同時解決多種資料型別和效率的 new b 語言 c 採用編譯模式而不是解釋模式,並引入型別系統,每個變數在使用前必...
01 簡單工廠模式
前言 設計模式方面,很多是多型模式的實現。多型涉及繼承和指標。簡單工程模式 有乙個工程類,可以根據輸入進行生產不同的物件指標。其 和執行結果如下 file car factory.h brief car factory author timeshark version 1.0 date 2018 0...