結構型模式 裝飾模式(C )

2021-10-06 02:27:32 字數 988 閱讀 9595

模式特點

裝飾模式例項

裝飾模式:在不改變現有物件結構的情況下,動態的給物件增加一些額外功能

實現和結構

模式結構

裝飾模式的uml類圖

模式使用場景

需要拓展乙個類的功能,或者給乙個類新增附加功能

需要動態的給乙個物件新增功能,這些功能可以動態的撤銷

需要通過對現有的一組基本功能進行動態組合而產生多種復合功能時(繼承實現較為困難)

模式特點優點

缺點 裝飾模式例項

#include

using namespace std;

//抽象構件:奧特曼

class abstractaltman

public:

int skillnum;

//技能數量};

//具體構件:迪迦奧特曼

class dijiaaltman : public abstractaltman};

//抽象裝飾:變身

class change : public abstractaltman

virtual void

showskill()

};//具體裝飾:紅色模式

class redchange : public change

//增加額外功能

void

changered()

void

showskill()

};//具體裝飾:紫色模式

class purplechange : public change

//增加額外功能

void

changepurple()

void

showskill()

};intmain()

裝飾模式(結構型模式)

裝飾模式是一種動態的給類中新增新行為的設計模式,裝飾模式比生成子類更為靈活,可以給某個物件而不是整個類新增一些功能。值得注意的是裝飾模式的裝飾類也繼承介面類,同時他也有介面類的指標指向他需要裝飾的具體類。外表看著像is a的關係,實際也是has a的關係。實際應用中裝飾類可以同時裝飾幾個具體類。可以...

結構型模式 裝飾模式

裝飾模式是對類的組合進行的擴充。比如現在有個門,現在有一些額外功能,比如 新增鎖 貼春聯 門眼 門框全包 等功能,這些功能可以單獨存在,也可以兩兩組合等隨意組合。怎麼實現這樣的 門 呢.繼承 比如有 貼春聯 門眼 就新增乙個新類,這樣如果需要其他的功能就需要無窮多的子類。組合 加強版組合 裝飾模式 ...

結構型模式 裝飾模式(decorator)

1 裝飾模式 動態的給乙個物件新增一些額外的職責,就增加功能來說decorator模式相比生成子類更為靈活。要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項。例項一 public inte ce source public class sourcechild implements...