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

            <java與模式> ---電子書 page 425

           

          裝飾模式—Decorator

          裝飾模式有名包裝模式,裝飾模式以對客戶端透明的方式來擴展對象的功能,是繼承關系的一個替代的方案。

          客戶端并不會覺得裝飾模式在裝飾前和裝飾后有什么不同,他可以在不使用更多的子類的情況下來進行對對象的功能加以擴展。結構圖如下:

          裝飾模式原來被裝飾類的一個子類的實例,把客戶端的調用委派到被裝飾類。他有以下組成:抽象構件,具體構件,裝飾角色,具體裝飾;他一般在下面這些情況使用他最好:

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

          2、  需要動態的給一個對象增加功能,這些功能可能被動態的撤消。

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

          優點:他可以靈活的增加一個類或對象的功能,也可以通過不同的具體裝飾類的排例組合設計出更加復雜的,功能更強的類。

          缺點:他雖然增加了一個類的靈活性,但同時他也給一個類的管理帶來了復雜性。
          posted on 2005-08-03 00:00 sky 閱讀(212) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 平远县| 东乌珠穆沁旗| 辉县市| 凤翔县| 郧西县| 武川县| 盐源县| 乌拉特前旗| 临高县| 准格尔旗| 珲春市| 石柱| 吉安市| 定日县| 北票市| 高平市| 上犹县| 湖南省| 蒲城县| 佛教| 勐海县| 玉林市| 金沙县| 三河市| 临猗县| 上思县| 全州县| 丰原市| 商城县| 斗六市| 灌南县| 会理县| 鄂伦春自治旗| 宁南县| 通道| 任丘市| 鄱阳县| 吉隆县| 宜宾县| 思茅市| 色达县|