1、定義及作用
該模式以對客戶端透明的方式擴展對象的功能。
2、涉及角色 抽象構件角色:定義一個抽象接口,來規范準備附加功能的類。
具體構件角色:將要被附加功能的類,實現抽象構件角色接口。
抽象裝飾者角色:持有對具體構件角色的引用并定義與抽象構件角色一致的接口。
具體裝飾角色:實現抽象裝飾者角色,負責為具體構件添加額外功能。
3、簡單實現 抽象構件角色java 代碼:
OO原則:動態地將責任附加到對象上。想要擴展功能,裝飾者提供有別于繼承的另一種選擇。
要點: 1、繼承屬于擴展形式之一,但不見得是達到彈性設計的最佳方案。 2、在我們的設計中,應該允許行為可以被擴展,而不須修改現有的代碼。 3、組合和委托可用于在運行時動態地加上新的行為。 4、除了繼承,裝飾者模式也可以讓我們擴展行為。 5、裝飾者模式意味著一群裝飾者類,這些類用來包裝具體組件。 6、裝飾者類反映出被裝飾的組件類型(實際上,他們具有相同的類型,都經過接口或繼承實現)。 7、裝飾者可以在被裝飾者的行為前面與/或后面加上自己的行為,甚至將被裝飾者的行為整個取代掉,而達到特定的目的。 8、你可以有無所數個裝飾者包裝一個組件。 9、裝飾者一般對組建的客戶是透明的,除非客戶程序依賴于組件的具體類型。 10、裝飾者會導致設計中出現許多的小對象,如果過度使用,會讓程序變得很復雜。
posted on 2008-05-25 09:58 々上善若水々 閱讀(1255) 評論(0) 編輯 收藏 所屬分類: 設計模式
Powered by: BlogJava Copyright © 々上善若水々