Head First Design Pattern 讀書筆記(3)裝飾者模式

Head First Design Pattern 讀書筆記(3) Decorator Pattern 裝飾者模式

##Decorator Pattern 類圖 裝飾者模式類圖java

##定義 裝飾者模式:經過讓組件類與裝飾者類實現相同的接口,裝飾類能夠在不修改原有組件類的狀況下,動態拓展組件類的新功能,而且能夠無限拓展下去。函數

##幾個OO的原測設計

  1. 類應該對修改關閉,對拓展開放。-->「開閉原則」,即儘可能不要修改已經在用的類,而經過繼承的方式去拓展類的新功能。
  2. 設計類時應當儘可能考慮不修改原有的代碼。-->同「開閉原則」
  3. 組合與代理的方式常常用來在運行時動態地添加新功能。

##關於裝飾者模式代理

  1. 裝飾者模式每次新增功能都會從新封裝一個裝飾者類,這樣可能帶來「類爆炸」問題,代碼中會有很是多結構類似的類,對一開始接觸的人來講很差理解與維護。
  2. 裝飾者類是它所裝飾的組件類的一個鏡像,它有原來組件的全部功能,還有新功能。
  3. 若是裝飾者類跟組件類有一樣函數簽名的方法,在該方法中,裝飾者在調用組件方法以前/後加入新的處理邏輯來給組件增長新功能。
  4. java中的輸入輸出流相關類就是經過Decorator Pattern實現的。
相關文章
相關標籤/搜索