Wrapper模式(Decorator模式)
【Wrapper模式(Decorator模式)】
裝飾者模式
Decorator模式(別名Wrapper):動態(tài)將職責附加到對象上,若要擴展功能,裝飾者提供了比繼承更具彈性的代替方案。
意圖:
動態(tài)地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活。
設計原則:
1. 多用組合,少用繼承。
利用繼承設計子類的行為,是在編譯時靜態(tài)決定的,而且所有的子類都會繼承到相同的行為。然而,如果能夠利用組合的做法擴展對象的行為,就可以在運行時動態(tài)地進行擴展。
2. 類應設計的對擴展開放,對修改關閉。
要點:
1. 裝飾者和被裝飾對象有相同的超類型。
2. 可以用一個或多個裝飾者包裝一個對象。
3. 裝飾者可以在所委托被裝飾者的行為之前或之后,加上自己的行為,以達到特定的目的。
4. 對象可以在任何時候被裝飾,所以可以在運行時動態(tài)的,不限量的用你喜歡的裝飾者來裝飾對象?! ?/p>
5. 裝飾模式中使用繼承的關鍵是想達到裝飾者和被裝飾對象的類型匹配,而不是獲得其行為。
6. 裝飾者一般對組件的客戶是透明的,除非客戶程序依賴于組件的具體類型。在實際項目中可以根據(jù)需要為裝飾者添加新的行為,做到“半透明”裝飾者。
7. 適配器模式的用意是改變對象的接口而不一定改變對象的性能,而裝飾模式的用意是保持接口并增加對象的職責。
總結(jié)
以上是生活随笔為你收集整理的Wrapper模式(Decorator模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: intellij运行flink的word
- 下一篇: 耳麦接头的CTIA标准和OMTP标准