少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          裝飾者模式(Decorator Pattern),是在不必改變原類文件和使用繼承的情況下,動態的擴展一個對象的功能。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。
          使用裝飾者模式的時候需要注意一下幾點內容:
          (1)裝飾對象和真實對象有相同的接口。這樣客戶端對象就可以以和真實對象相同的方式和裝飾對象交互。
          (2)裝飾對象包含一個真實對象的引用。
          (3)裝飾對象接受所有的來自客戶端的請求,它把這些請求轉發給真實的對象。
          (4)裝飾對象可以在轉發這些請求以前或以后增加一些附加功能。這樣就確保了在運行時,不用修改給定對象的結構就可以在外部增加附加的功能。在面向對象的設計中,通常是通過繼承來實現對給定類的功能擴展。然而,裝飾者模式,不需要子類可以在應用程序運行時,動態擴展功能,更加方便、靈活。

          適用裝飾者模式場合:
          1.當我們需要為某個現有的對象,動態的增加一個新的功能或職責時,可以考慮使用裝飾模式。
          2.當某個對象的職責經常發生變化或者經常需要動態的增加職責,避免為了適應這樣的變化,而增加繼承子類擴展的方式,因為這種方式會造成子類膨脹的速度過快,難以控制。

          推薦你一本設計模式方面的優秀書籍:鄭阿奇 主編的《軟件秘笈-設計模式那點事》。里面講解很到位,實例通俗易懂,看了收獲很大!

          posted on 2015-03-27 00:11 abin 閱讀(910) 評論(0)  編輯  收藏 所屬分類: PatternDesigns
          主站蜘蛛池模板: 观塘区| 农安县| 巴南区| 黄大仙区| 红原县| 西峡县| 曲阳县| 什邡市| 滦南县| 沙河市| 郯城县| 沾益县| 石嘴山市| 河池市| 军事| 东平县| 泗阳县| 益阳市| 梁山县| 汝南县| 赣榆县| 屏东市| 武功县| 广昌县| 锡林浩特市| 杭锦后旗| 牟定县| 西平县| 伊通| 绵阳市| 肥乡县| 仙游县| 枣强县| 固镇县| 青海省| 阜南县| 汤阴县| 双峰县| 昆明市| 浪卡子县| 河西区|