裝飾模式:
他的各個角色的作用為:抽象角色:給出一個抽象的接口,以規范準備接收附加責任的對象。
具體角色:定義一個將要接收附加責任的類。
裝飾角色:持有一個構件對象的實例,并定義一個雨抽象接口一致的接口。
具體裝飾角色:負責給構件對象“貼上”附加責任。
裝飾類一般在以下情況使用:
1、 需要擴展一個類的功能,或給一個類增加附加責任。
2、 需要動態的給一個對象增加功能,這些功能可以再動態的測銷。
3、 需要增加由一些基本的排列組合產生非常大量的功能,從而使繼承關系變得不現實。
他有很多特點:
1、 裝飾模式雨繼承關系的目的都是要擴展對象的功能,但是裝飾模式可以提供比繼承更多的靈活性。裝飾模式準系統動態的決定“貼上”一個需要的“裝飾”,或者除掉一個不需要的裝飾。而繼承則不同,繼承關系是靜態的,他在系統運行前就決定了。
2、 他可以通過使用不同的具體修飾類以及這些裝飾類的排例組合,設計可以創造更多不同行為的組合。
3、 他雖然比繼承性要靈活,這意味著他比繼承更容易出錯。
缺點:由于使用裝飾模式可以比使用繼承關系需要較少數目的類,但是在另一方面,使用裝飾模式會產生比使用繼承方式更多的對象。這在使用時進行錯誤查詢變得更困難了,特別是這些對象看上去都很像。
posted on 2005-08-11 22:36
sky 閱讀(237)
評論(0) 編輯 收藏