一.裝飾器模式
1.概念
裝飾器模式就是在原有類的基礎上,對其進行功能增強,之前我們可以通過繼承的方式來重寫父類方法,改變其行為。裝飾器模式則更靈活,通過實作或者繼承該類的抽象父類或者實作的接口,來實作功能的拓展。其中原有類是被裝飾類,修改它的類是裝飾類。
2.裝飾器模式前提條件
①被裝飾類,必須繼承抽象父類,或者繼承一個接口
②裝飾類,需要有一個被裝飾類的屬性,用來接收被裝飾類的所有子類型對象
③裝飾類構造器中需要傳入一個被裝飾類的任意一個子類對象
說明一下:之是以裝飾類也需要繼承抽象父類,或者實作接口,是因為可以把它當做抽象父類類型,或是接口類型來用。
二.案例Demo
①首先定義接口
②實作子類 Me 沒有任何裝飾 是個裸體的人
③現在給 Me裝飾衣服 定義衣服類
注意:該類需要傳入一個抽象父類或者接口對象,用來裝飾它
④定義帽子類Hat 帶帽子
⑤定義襯衫類shirt 穿花襯衫
測試
如果 AbstractCloths不實作AbstractPerson
隻能這樣調用功能,不影響結果,但是為了不能展現多态