設計模式筆記(三)--裝飾者模式

裝飾者模式(Decorator Pattern)

動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。

簡單點說,裝飾者可以裝飾(也就是在原來功能的基礎上再擴展其功能)被裝飾者。一個被裝飾者可以被多個裝飾者裝飾,或者被相同的裝飾者裝飾多次,是不是很靈活啊。而這就要求裝飾者和被裝飾者要有相同的父類型。


一般的裝飾類我們都會這樣設計,具體的裝飾者會持有一個被裝飾者對象,這樣我們一就知道了被裝飾對象的行爲,也就可以去裝飾這些行爲了。而且通常在裝飾者的構造器中來獲取並保存這個被裝飾者對象。

Notes:

  • 裝飾者與被裝飾者具有相同的超類型
  • 可以用多個裝飾者去裝飾一個對象
  • 可以用裝飾過的對象代替他自己
  • 裝飾者可以在被裝飾者的行爲之前/之後,加上自己的行爲
  • 繼承是爲了達到“類型匹配”,而不是爲了繼承行爲
  • 把被裝飾者組合進來,也得到了其行爲

發佈了48 篇原創文章 · 獲贊 168 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章