裝飾模式 重點

裝飾模式 重點

裝飾模式 重點

裝飾模式 重點

裝飾模式是為既有功能動態地增加更多功能的一種方式。
用的時機通常是,當系統需要新功能時,在舊的類別中
添加新的程式碼。這些新增的程式碼通常裝飾了原有類別
的核心職責或主要行為。而在主類別新增新的欄位、新的
方法和新的邏輯,從而增加主類別的複雜度。

而這些新加入的東西只是為了滿足一些只在某種特定情況
下才會執行的特殊行為的需要。而裝飾模式卻提供了一個
非常好的解決方案。它將每個要裝飾的功能放在單獨的類
別中,並讓這個類別包裝它所要裝飾的物件。因此,當需要
執行特殊行為時,客戶程式碼就可以在執行時,根據需要
有選擇地、按順序地使用裝飾功能包裝物件。

裝飾模式的優點是,把類別中的裝飾功能從類別中搬移去除
,這樣可以簡化原有的類別。有效地把類別的核心職責和裝飾
功能區分開。而且可以去除相關類別中重複的裝飾邏輯。

要注意是使用裝飾模式的順序非常重要,最理想的狀況是,
保證裝飾類別之間彼此獨立,這樣它們就能以任意的順序進行
組合。