裝飾器模式 (Decorator Pattern) 是一種結構型設計模式,它動態地給一個對象添加一些額外的職責,就增加功能來說,裝飾器模式相比生成子類更為靈活。
一、基礎
1 意圖
-
動態地給一個對象添加一些額外的職責。
-
就增加功能來說,裝飾器模式相比生成子類更為靈活。
2 適用場景
-
當需要擴展一個類的功能,或給一個類增加附加功能時。
-
當需要動態地給一個對象增加功能,這些功能可以再動態地撤銷時。
-
當需要為一批兄弟類進行改裝或加裝功能時。
3 結構
- 抽象組件(Component):定義了具體組件和裝飾器的共同接口,客戶端通過該接口與具體組件和裝飾器進行交互。它可以是抽象類或接口。?
- 具體組件(ConcreteComponent):實現了抽象組件接口,是被裝飾的原始對象,它定義了對象的基本功能。?
- 抽象裝飾器(Decorator):繼承或實現抽象組件接口,并且持有一個指向抽象組件對象的引用。它的主要作用是為具體裝飾器提供統一的接口,在其實現的方法中,通