12 裝飾模式

2021-09-11 21:35:28 字數 796 閱讀 9395

裝飾模式:動態地給乙個物件新增一些額外的職責

一般情況下可用繼承實現類的功能拓展

// 英雄抽象類

class abstracthero

;// 具體英雄:蓋倫

class gailun : public abstracthero

void show_status() };

// 給英雄新增裝飾物,他依舊還是個英雄

class abstractequipment : public abstracthero

virtual void show_status() {};

public:

abstracthero* phero;

};// 紅蓮斗篷

class doupeng : public abstractequipment

// 增加額外功能

void add_doupeng()

void show_status() };

// 無盡之刃

class wujin : public abstractequipment

//增加額外功能

void add_wujin()

void show_status() };

void test_01()

int main()

12 裝飾模式

在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾模式的類圖 component為抽象構件,是乙個介面或抽象類,定義最核心的物件,也就是最原始物件 concretecomponent 為具體構件,是抽象構件的實現,需要裝飾的...

設計模式之裝飾者模式12

有一次考試,小明考了60分,然後學校出了乙個成績單,要家長簽字。60分,王老漢肯定不簽字。這時,需要加兩個裝飾。1 最高分是70分,我考了60分。2 我排名從40到30名。學校給的報告單 public abstract class schoolreport 四年級真實的成績單 public clas...

《設計模式之禪》讀書筆記 12 裝飾模式

定義 裝飾模式可以動態地給乙個物件新增一些額外的職責。類圖 component抽象構件 component是乙個介面或者是抽象類,就是定義我們最核心的物件,也就是最原始的物件。concretecomponent具體構件 concretecomponent是最核心 最原始 最基本的介面或抽象類的實現。...