裝飾者模式可以動態地給乙個物件增加其他職責。就擴充套件物件功能來說,裝飾者模式比生成子類更為靈活。(定義)不給你寫**了,寫了估計你也不看。
簡單的給你解釋吧:你只會做一件事情a,我想讓你去做b-a這件事情,不改變你的行為,你肯定不會做的。但是小明會做另一件事情b,所以我就可以讓小明去做b,並且告訴小明做完後 如果遇見你 就讓你做事情a。讓後我們你們兩個放在一塊,讓小明做b,然後事情b-a就可以被做了。同樣我想完成事情c-a,只要找到會做c的小王就可以了。
在這裡你就是被裝飾者,小明和小王就是裝飾者。之所以把你叫做裝飾者,可能是因為你做的事情是主要的事情。其實這些都是可以靈活利用的 。
建議你看書 header first 設計模式
java裝飾者模式
1 定義 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。2 描述 由 抽象構件角色 定義乙個抽象介面,來規範準備附加功能的類 具體構件角色 將要被附加功能的類,實現抽象構件角色介面 抽象裝飾者角色 持有對具體構件角色的引用並定義與抽象構件角色一致的介面 和 具體裝...
java 裝飾者模式
1.裝飾者模式 思想 可以通過裝飾 對原來的功能進行公升級 例如 bufferedoutputstream 傳入的引數是 fileoutputstream 相當於把fileoutputstream裝飾了 裝飾後 功能得到提公升 寫入效率提高 裝飾者模式流程 1 把被裝飾者寫成成員變數 2 構造方法中...
Java 裝飾者模式
裝飾者模式 課題 星巴茲咖啡 beverage 飲料 condiment 調料 開發 關閉原則 類應該對擴充套件開放,對修改關閉。定義裝飾者模式 裝飾者模式 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。飲料抽象類 public abstract class be...