設計模式 簡單工廠模式

2021-09-07 13:16:54 字數 1283 閱讀 2816

以物件導向的思想和簡單工廠模式。寫乙個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虛函式。uml圖例如以下:

參考:《大話設計模式》第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...