設計模式 簡單工廠模式

2021-12-30 05:18:24 字數 1177 閱讀 3212

以物件導向的思想和簡單工廠模式,寫乙個c++計算器程式,**如下:

#include

using namespace std;

class operation

const double getleft() const

const double getright() const

void setleft(const double left)

void setright(const double right)

virtual double calculate() = 0; // 純虛函式

protected:

double lhs;

double rhs;

};class add : public operation

double calculate()

};class sub : public operation

double calculate()

};class mul : public operation

double calculate()

};class div : public operation

catch (const runtime_error &e)

}double calculate()

};// 工廠函式

operation* factoryfunction(double left, double right, char op)

}int main()

執行結果:

基類operation將運算的兩個運算元進行封裝,使使用者無法直接訪問運算元。如果使用者要訪問或修改運算元,在基類中新增函式介面即可。同時運用繼承,將具體的操作符從基類派生出來,並根據運算子特性重寫基類中的純虛函式。這樣做的好處是能夠降低耦合度。假設需要向**中新增新的運算子,那麼只需要將新的運算子繼承自operation基類即可,不需要修改其它派生類中的**。本例使用乙個工廠函式factoryfunction來例項化物件。該工廠函式返回乙個基類指標,指向派生類物件,使得使用者可以呼叫相同的函式生成不同的物件。然後根據多型性質呼叫派生類的calculate虛函式。

參考: 《大話設計模式》第1章。

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

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...

設計模式(簡單工廠模式 工廠模式 抽象工廠模式)

當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...

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

請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...