設計模式 策劃模式(C ) 商場收費系統

2021-10-10 09:28:25 字數 1037 閱讀 3319

//用策略模式實現商場收費系統

#include

using

namespace std;

//現金收費抽象類

//抽象產品:抽象產品角色是所建立的所有物件的父類,負責描述所有例項所共有的公共介面

class

cashsuper

;//具體產品:具體產品角色(子類)是建立目標,所有建立的物件都充當這個角色的某個具體類的例項。

//正常收費子類

class

cashnormal

:public cashsuper};

//打折收費子類

class

cashrebate

:public cashsuper

virtual

double

acceptcash

(double money)};

//返利收費子類

class

cashreturn

:public cashsuper

virtual

double

acceptcash

(double money)

return result;}}

;//在策略模式中,我們建立表示各種策略的物件和乙個行為隨著策略物件改變而改變的 context 物件。策略物件改變 context 物件的執行演算法。

//context 類:維護乙個對抽象演算法類物件的引用

class

cashcontext

double

contextintetface

(double money)};

//由於例項化不同的策略,最終在呼叫context->contextinte***ce()時,所獲得的結果就不盡相同。

intmain()

cout<>

contextintetface

(100

)

("pause");

return0;

}

設計模式 策劃模式(C ) 演算法實現

意圖 定義一系列的演算法,把它們乙個個封裝起來,並且使它們可相互替換 主要解決 在有多種演算法相似的情況下,使用 if else 所帶來的複雜和難以維護。何時使用 乙個系統有許多許多類,而區分它們的只是他們直接的行為。如何解決 將這些演算法封裝成乙個乙個的類,任意地替換。關鍵 實現同乙個介面。優點 ...

商場促銷 策略模式(設計模式)

商場收銀時,如何 用打折還是返利,其實都是一些演算法,用工廠來生成演算法物件,這沒有錯,但演算法本身只是一種策略,最重要的是這些演算法是隨時都可能互相替換的,就這點變化,而封裝變化點是我們物件導向的一種很重要的思維方式。來看看策略模式的結構圖和基本 策略模式 strategy 定義了演算法家族,分別...

《大話設計模式》簡單工廠模式 商場促銷系統例項

商場收銀軟體 如下面這樣乙個收銀介面,如果再加上打折 或者滿減 等活動,首先用用簡單工廠實現。現金收費抽象類 abstract class cashsuper 正常收費子類 class cashnormal cashsuper 打折收費子類 class cashrebate cashsuper pu...