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

2021-10-25 04:07:06 字數 988 閱讀 4320

原**:

#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 ...