<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    1.裝飾模式(Decorator):
    裝飾模式(Decorator)也叫包裝器模式(Wrapper)。GOF在《設(shè)計(jì)模式》一書中給出的定義為:動態(tài)地給一個(gè)對象添加一些額外的職責(zé)。就增加功能來說,Decorator模式相比生成子類更為靈活。
    裝飾模式的組成:

    1)        抽象構(gòu)件角色(Component):定義一個(gè)抽象接口,以規(guī)范準(zhǔn)備接收附加責(zé)任的對象。

    2)        具體構(gòu)件角色(Concrete Component):這是被裝飾者,定義一個(gè)將要被裝飾增加功能的類。

    3)        裝飾角色(Decorator):持有一個(gè)構(gòu)件對象的實(shí)例,并定義了抽象構(gòu)件定義的接口。

    4)        具體裝飾角色(Concrete Decorator):負(fù)責(zé)給構(gòu)件添加增加的功能。

    JAVAIO流的設(shè)計(jì)就大量運(yùn)用了裝飾模式。看看我們熟悉的代碼:


    裝飾模式的特點(diǎn);
    (1) 裝飾對象和真實(shí)對象有相同的接口。這樣客戶端對象就可以以和真實(shí)對象相同的方式和裝飾對象交互。
    (2) 裝飾對象包含一個(gè)真實(shí)對象的索引(reference)
    (3) 裝飾對象接受所有的來自客戶端的請求。它把這些請求轉(zhuǎn)發(fā)給真實(shí)的對象。
    (4) 裝飾對象可以在轉(zhuǎn)發(fā)這些請求以前或以后增加一些附加功能。這樣就確保了在運(yùn)行時(shí),不用修改給定對象的結(jié)構(gòu)就可以在外部增加附加的功能。在面向?qū)ο蟮脑O(shè)計(jì)中,通常是通過繼續(xù)來實(shí)現(xiàn)對給定類的功能擴(kuò)展。


    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("..")));

    層層包裝,增強(qiáng)功能。這就是裝飾模式的要旨。


    posted on 2009-12-23 14:15 seal 閱讀(246) 評論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式
    主站蜘蛛池模板: 亚洲人成网站观看在线播放| 午夜毛片不卡高清免费| 国产亚洲精品免费视频播放| 国产精品无码亚洲精品2021| 四虎www成人影院免费观看| 亚洲日韩一区二区三区| 最近的免费中文字幕视频| 亚洲日韩精品无码专区加勒比☆| 毛色毛片免费观看| 精品国产亚洲一区二区三区在线观看| 啦啦啦手机完整免费高清观看| 亚洲熟妇AV乱码在线观看| 最新仑乱免费视频| 免费国产高清毛不卡片基地| 亚洲精品无码久久久| 你懂的在线免费观看| 亚洲综合在线观看视频| 99视频在线免费| 亚洲制服丝袜中文字幕| 在线观看无码的免费网站| 国产尤物在线视精品在亚洲| 亚洲午夜爱爱香蕉片| 免费国产午夜高清在线视频| 亚洲精品亚洲人成在线观看麻豆| 妻子5免费完整高清电视| 国产亚洲精品AAAA片APP| 一本久久a久久精品亚洲| 免费无码一区二区三区| 亚洲综合激情五月丁香六月| 免费无遮挡无码视频网站| 一级做a爱过程免费视| 亚洲午夜久久久精品影院| 午夜免费福利影院| 中文字字幕在线高清免费电影| 亚洲精品韩国美女在线| 国产精品国产免费无码专区不卡| 国产视频精品免费视频| 亚洲精品福利在线观看| 亚洲国产成人久久一区WWW| 污污网站免费观看| 国产精品亚洲lv粉色|