C 設計模式 策略模式(高屋建瓴)

2021-10-25 03:54:40 字數 775 閱讀 4390

原**:

**做如下修改:

#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;}}

;/* 收費策略 */

class

cashcontext}~

cashcontext()

/*得到現金計算結果(利用了多型機制,不同的策略行為導致不同的結果)*/

double

getresult

(double money )};

intmain()

運輸結果:

350280

250

C 設計模式 裝飾著模式(高屋建瓴)

原 include include using namespace std person 類 class person person std string name virtual void show 當你用乙個基類指標或引用指向乙個繼承類物件的時候,呼叫乙個虛函式時,實際呼叫的是繼承類的版本。pr...

c 設計模式 策略模式

策略模式,看完策略模式最大的感受就是將所有的演算法封裝起來,讓它們之間可以相互替換,這個模式讓演算法的變化不會影響到使用者。我寫的例子還是之前的那個簡易計算器,策略模式可以和簡單工廠模式結合,在客戶端中只需認識乙個concent類,將所有的演算法物件建立以及演算法的使用全部封裝在乙個類中,即conc...

C 設計模式 策略模式

策略模式 定義了演算法家族,分別封裝起來,然後定義乙個統一的藉口,演算法之間可以相互替換。使用該模式可以讓演算法的變化不影響到使用演算法的客戶。模式實現 策略模式具體實現時通常與工廠模式相結合,定義乙個工廠類,來決定初始化哪個演算法。如下 include using namespace std en...