Head First Design Pattern 讀書筆記(3) Decorator Pattern 裝飾者模式
##Decorator Pattern 類圖
java
##定義 裝飾者模式:經過讓組件類與裝飾者類實現相同的接口,裝飾類能夠在不修改原有組件類的狀況下,動態拓展組件類的新功能,而且能夠無限拓展下去。函數
##幾個OO的原測設計
- 類應該對修改關閉,對拓展開放。-->「開閉原則」,即儘可能不要修改已經在用的類,而經過繼承的方式去拓展類的新功能。
- 設計類時應當儘可能考慮不修改原有的代碼。-->同「開閉原則」
- 組合與代理的方式常常用來在運行時動態地添加新功能。
##關於裝飾者模式代理
- 裝飾者模式每次新增功能都會從新封裝一個裝飾者類,這樣可能帶來「類爆炸」問題,代碼中會有很是多結構類似的類,對一開始接觸的人來講很差理解與維護。
- 裝飾者類是它所裝飾的組件類的一個鏡像,它有原來組件的全部功能,還有新功能。
- 若是裝飾者類跟組件類有一樣函數簽名的方法,在該方法中,裝飾者在調用組件方法以前/後加入新的處理邏輯來給組件增長新功能。
- java中的輸入輸出流相關類就是經過Decorator Pattern實現的。