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

             裝飾模式

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

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

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

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

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

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

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

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

              

          他有很多特點:

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

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

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

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

           

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

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


          網站導航:
           
          主站蜘蛛池模板: 新建县| 衡阳县| 修武县| 临西县| 屏边| 沧州市| 新津县| 万年县| 麻阳| 长乐市| 藁城市| 莆田市| 江津市| 平乐县| 纳雍县| 班玛县| 金秀| 伊宁市| 广西| 弥渡县| 宁南县| 元阳县| 澄城县| 黔西县| 衡东县| 方山县| 平山县| 成都市| 始兴县| 双城市| 弥勒县| 民权县| 北票市| 榆林市| 肥乡县| 湖南省| 延川县| 前郭尔| 离岛区| 大城县| 土默特右旗|