以下內容全部來自傳智播客的設計模式講義:
概念
裝飾( decorator )模式又叫做包裝模式。通過一種對客戶端透明的方式來擴充套件物件的功能,是繼承關係的乙個替換方案。
裝飾模式就是把要新增的附加功能分別放在單獨的類中,並讓這個類包含它要裝飾的物件,當需要執行時,客戶端就可以有選擇地、按順序地使用裝飾功能包裝物件。
類圖角色和職責
適用於:
裝飾者模式
(decorator pattern)動態的給乙個物件新增一些額外的職責。就增加功能來說,此模式比生成子類更為靈活。案例
#include using namespace std;
class car
;class runcar : public car
virtual void show()
protected:
private:
};class swimcardirector : public car
void swim()
virtual void show()
private:
car *m_p;
};class flycardirector : public car
void fly()
virtual void show()
private:
car *m_p;
};void main()
C 23種設計模式
目錄 前提 了解物件導向六大設計原則,有的說5大原則,說7大原則的都有,這些原則一般都包含 單一職責 黎克特制替換 依賴倒置 介面分離 組合復用原則 開閉原則 迪公尺特法則,理解一下,23種設計模式一般 是遵照這些原則具體的實現技巧。分類 建立型5種 工廠方法 抽象工廠 單例模式 構建者模式 原型模...
23種設計模式之裝飾者模式
今天我來向大家講解一下裝飾者模式,裝飾者模式的設計原則同樣也是對擴充套件開放,對修改關閉,那我們就有了乙個問題,如何做到對修改關閉,對擴充套件開放呢?我們都知道,裝飾者模式的定義是動態地將責任附加到物件中,其實裝飾者模式也可以說是動態巢狀的乙個過程。就比如舉例來說,假如我現在到乙個商店中買了一杯牛奶...
C 23種設計模式理解
有句話這樣說 程式設計中,沒有什麼問題是包一層不能解決的,如果有,就在包一層!六大原則 工廠方法模式 抽象工廠模式 單例模式 主要解決 乙個全域性使用的類頻繁地建立與銷毀,為保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點,實 現 私有化建構函式,對外提供乙個可控入口用於物件建立 入口可以是乙...