1. 程式人生 > >《大話設計模式》——裝飾模式學習

《大話設計模式》——裝飾模式學習

第一步先實現簡單的功能:構建一個系統,給不同的人裝飾上不同的衣物

這種寫法的不好的地方,如果需要新增裝扮,就必須修改Person程式碼,不符合程式設計的開閉原則。以下第二種實現:

進一步改進,將程式改為裝飾模式,動態的給一個物件新增額外的職責。

通過《大話》書中的這個裝飾模式圖來說明:

主要是Decorator類來繼承需要被裝飾的類而且提供給其後續的子類擴充套件功能的介面。需要注意的是重寫父類鍾需要被裝飾的方法。

然後具體的裝飾類中需要呼叫基類的被裝飾的方法:

該類中後面語句的就是對被裝飾類——原類,進行新增新的功能。

裝飾模式的好處:每個裝飾物件的實現和如何使用這個物件分離,每個裝飾物件只關心自己的功能,無需關心如何被引入到物件的引用中。