設計模式學習 五 裝飾模式

2021-12-30 02:50:19 字數 355 閱讀 6452

裝飾模式:動態的給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活

比如要出門,給自己穿上各種衣服,就可以使用乙個服裝類:

#ifndef person

#define person

#include

#include

#include

class person

//子類不想用建構函式,父類必須實現無引數建構函式(如果父類沒有建構函式時,預設編譯器產生的建構函式即可!)

person(qstring n)

virtual void show()

這樣就實現了簡單的裝飾模式。

最後,放上原始碼位址:

設計模式(五) 裝飾模式

什麼是裝飾模式?裝飾模式 decorator 動態的給乙個物件增加一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。一般而言,當系統需要實現新功能時候,我們會向舊的類中新增新的 以擴充套件其功能。我們將這種行為稱為對主類的裝飾,但這種做法的問題在於,在主類中增加了屬性和方法,從而增加了主類...

設計模式(五)裝飾模式

一 概念 特點 裝飾者和被裝飾者擁有相同的超型別 可能是抽象類也可能是介面 在裝飾類中包含乙個被裝飾元件類的物件引用 可以為被裝飾物件新增額外的功能 在裝飾類中重寫被裝飾元件類中的方法,並對被裝飾元件類中對應的方法呼叫 因為裝飾者和被裝飾者擁有相同的抽象型別,因此在任何需要原始物件 被包裝 的場合,...

(五)設計模式 裝飾模式

動態的給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。人 concretecomponet定義了乙個具體的物件,也可以給這個物件新增職責。服飾 裝飾抽象類,繼承componet,從外類來擴充套件componet類的功能,但對於componet來說,是無需知道decorato...