裝飾者設計模式 : 增強一個類的功能,而且可以讓這些類互相裝飾。
裝飾者設計模式的步驟 :
- 在裝飾類的內部維護一個被裝飾的引用
- 讓裝飾類有一個共同的父類或者是父接口
繼承實現的增強類和裝飾模式實現的增強類的區別 :
繼承實現的增強類 :
優點 : 代碼結構清晰,而且實現簡單。
缺點:對於每一個需要增強的類都要創建具體的子類,會導致繼承體系過於龐大。
裝飾者模式實現的增強類:
優點:內部可以通過多態技術對多個需要增強的類進行增強。可以使這些裝飾類達到互相裝飾的效果。
缺點:需要內部通過多態技術維護需要增強的實例。進而使代碼稍微複雜。