原**:
#include
#include
using
namespace std;
//person 類
class
person
person
(std::string name)
;virtual
void
show()
;//當你用乙個基類指標或引用指向乙個繼承類物件的時候,
//呼叫乙個虛函式時, 實際呼叫的是繼承類的版本。
private
:std::string name;};
person::
person
(std::string name)
void person::
show()
//裝飾類
//負責穿戴不同的服裝 有乙個引數是服裝物件
class
finery
:public person
void
decorator
(person* component)
;//穿衣服函式
void
show()
;};void finery::
decorator
(person* component)
void finery::
show()
//具體服裝
class
tshirts
:public finery
void
show()
};class
sneakers
:public finery
void
show()
};intmain()
輸出結果:
first style:
sneakerst shirtszhuangshidexiaocai
設計模式 裝飾著模式
裝飾者模式的應用場景覆蓋,擴充套件,is a,前置,寫法 裝飾者模式 decorator pattern 是指在不改變原有物件的基礎之上,將功能附加到物件上,提供了比繼承更有彈性的替代方案 擴充套件原有物件的功能 裝飾者在 程式中適用於以下場景 1 用於擴充套件乙個類的功能或給乙個類新增附加職責。2...
C 設計模式 策略模式(高屋建瓴)
原 做如下修改 include using namespace std 付款金額計算的抽象類 class cashsuper 正常收費策略 class cashnormal public cashsuper 打折收費策略 class cashrebate public cashsuper virtu...
設計模式之裝飾著模式
今天學習了裝飾著模式,寫在這裡防止忘掉。裝飾著模式自己理解就是給類新增職責,新增新的功能。比如下面的 date 2017 7 1 author hsj description public class demo3 inte ce coder class codestudent implements ...