隨筆-19  評論-2  文章-1  trackbacks-0

             裝飾模式

                  他的各個角色的作用為:抽象角色:給出一個抽象的接口,以規范準備接收附加責任的對象。

                  具體角色:定義一個將要接收附加責任的類。

                  裝飾角色:持有一個構件對象的實例,并定義一個雨抽象接口一致的接口。

                  具體裝飾角色:負責給構件對象“貼上”附加責任。

          裝飾類一般在以下情況使用:

          1、  需要擴展一個類的功能,或給一個類增加附加責任。

          2、  需要動態的給一個對象增加功能,這些功能可以再動態的測銷。

          3、  需要增加由一些基本的排列組合產生非常大量的功能,從而使繼承關系變得不現實。          

              

          他有很多特點:

          1、  裝飾模式雨繼承關系的目的都是要擴展對象的功能,但是裝飾模式可以提供比繼承更多的靈活性。裝飾模式準系統動態的決定“貼上”一個需要的“裝飾”,或者除掉一個不需要的裝飾。而繼承則不同,繼承關系是靜態的,他在系統運行前就決定了。

          2、  他可以通過使用不同的具體修飾類以及這些裝飾類的排例組合,設計可以創造更多不同行為的組合。     

          3、  他雖然比繼承性要靈活,這意味著他比繼承更容易出錯。

          缺點:由于使用裝飾模式可以比使用繼承關系需要較少數目的類,但是在另一方面,使用裝飾模式會產生比使用繼承方式更多的對象。這在使用時進行錯誤查詢變得更困難了,特別是這些對象看上去都很像。

           

          posted on 2005-08-11 22:36 sky 閱讀(239) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 盐源县| 南宫市| 丰台区| 临城县| 佛学| 子长县| 康平县| 凤翔县| 二连浩特市| 高安市| 申扎县| 广西| 余姚市| 孟州市| 翁源县| 聂荣县| 云南省| 南丰县| 石首市| 南陵县| 太仆寺旗| 四子王旗| 宁晋县| 寿光市| 白山市| 莎车县| 固始县| 阜阳市| 呼图壁县| 吉安市| 尖扎县| 安溪县| 绵阳市| 青冈县| 金阳县| 德钦县| 额敏县| 遂昌县| 沭阳县| 栖霞市| 永新县|