設計模式-裝飾模式(包裝模式)

        裝飾模式是在不必改變原類文件和使用繼承的情況下,動態的擴展一個對象的功能,通過創建包裝對象來包裹真實的對象。

        可以動態的給一些對象添加職責,當系統需要新功能的時候,一般是向舊類中添加新代碼,這些新加的代碼通常裝飾了原有類的核心職責或主要行爲,這種做法的問題在於,他們在主類中加入了新的字段、方法、邏輯等,從而增加了主類的複雜程度,而這些新加入的東西僅僅是爲了滿足一些只在某種特定情況下才會執行的特殊行爲的需要。裝飾模式可以將其隔離開來。它把每個要裝飾的功能放在單獨的類中,並讓這個類包裝它所要裝飾的對象,因此,當需要執行特殊行爲時,客戶代碼就可以在運行時根據需要有選擇的,按順序的使用裝飾功能來包裝對象了。

        裝飾模式把類中的裝飾功能從類中移除,簡化原類,當裝飾方法修改時也不會對原類產生影響,有效的把類的核心職責和裝飾功能區分開,而且可以去除相關類中重複的裝飾邏輯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章