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

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

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

    隨筆-37  評(píng)論-58  文章-4  trackbacks-0
          組合模式:將對(duì)象以樹(shù)形結(jié)構(gòu)組織起來(lái),以達(dá)成“部分-整體” 的層次結(jié)構(gòu),使得客戶(hù)端對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性.
    適用環(huán)境:

    u       你想表示對(duì)象的部分-整體層次結(jié)構(gòu)。

    u       你希望用戶(hù)忽略組合對(duì)象與單個(gè)對(duì)象的不同,用戶(hù)將統(tǒng)一地使用組合結(jié)構(gòu)中的所有對(duì)象。

    Composite好處:
    1.使客戶(hù)端調(diào)用簡(jiǎn)單,客戶(hù)端可以一致的使用組合結(jié)構(gòu)或其中單個(gè)對(duì)象,用戶(hù)就不必關(guān)系自己處理的是單個(gè)對(duì)象還是整個(gè)組合結(jié)構(gòu),這就簡(jiǎn)化了客戶(hù)端代碼。
    2.更容易在組合體內(nèi)加入對(duì)象部件. 客戶(hù)端不必因?yàn)榧尤肓诵碌膶?duì)象部件而更改代碼。

    組合模式的組成

           抽象構(gòu)件角色Component:它為組合中的對(duì)象聲明接口,也可以為共有接口實(shí)現(xiàn)缺省行為。

           樹(shù)葉構(gòu)件角色Leaf:在組合中表示葉節(jié)點(diǎn)對(duì)象——沒(méi)有子節(jié)點(diǎn),實(shí)現(xiàn)抽象構(gòu)件角色聲明的接口。

           樹(shù)枝構(gòu)件角色Composite:在組合中表示分支節(jié)點(diǎn)對(duì)象——有子節(jié)點(diǎn),實(shí)現(xiàn)抽象構(gòu)件角色聲明的接口;存儲(chǔ)子部件。

    下圖為組合模式的類(lèi)圖表示。
    comp1.bmp
    安全性與透明性

       組合模式中必須提供對(duì)子對(duì)象的管理方法,不然無(wú)法完成對(duì)子對(duì)象的添加刪除等等操作,也就失去了靈活性和擴(kuò)展性。但是管理方法是在Component中就聲明還是在Composite中聲明呢?

       一種方式是在Component里面聲明所有的用來(lái)管理子類(lèi)對(duì)象的方法,以達(dá)到Component接口的最大化(如下圖所示)。目的就是為了使客戶(hù)看來(lái)在接口層次上樹(shù)葉和分支沒(méi)有區(qū)別——透明性。但樹(shù)葉是不存在子類(lèi)的,因此Component聲明的一些方法對(duì)于樹(shù)葉來(lái)說(shuō)是不適用的。這樣也就帶來(lái)了一些安全性問(wèn)題。
       另一種方式就是只在Composite里面聲明所有的用來(lái)管理子類(lèi)對(duì)象的方法(如下圖所示)。這樣就避免了上一種方式的安全性問(wèn)題,但是由于葉子和分支有不同的接口,所以又失去了透明性。
      《設(shè)計(jì)模式》一書(shū)認(rèn)為:在這一模式中,相對(duì)于安全性,我們比較強(qiáng)調(diào)透明性。對(duì)于第一種方式中葉子節(jié)點(diǎn)內(nèi)不需要的方法可以使用空處理或者異常報(bào)告的方式來(lái)解決。
    如何使用Composite?

    posted on 2007-08-30 10:14 楓中玎玲 閱讀(289) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 設(shè)計(jì)模式

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎成人免费大片在线| 2022久久国产精品免费热麻豆| 久久久久久A亚洲欧洲AV冫| 亚洲18在线天美| 成人免费一区二区无码视频| 亚洲人成影院午夜网站| 91精品视频免费| 亚洲一级毛片视频| 91精品成人免费国产片| 亚洲人成黄网在线观看| 毛片高清视频在线看免费观看| 亚洲第一区精品日韩在线播放| 亚洲日韩精品射精日| 免费无码又爽又刺激高潮软件 | 亚洲AV乱码一区二区三区林ゆな| 亚洲va在线va天堂va四虎| 久久免费福利视频| 78成人精品电影在线播放日韩精品电影一区亚洲 | mm1313亚洲精品国产| 伊人久久国产免费观看视频| 自拍偷自拍亚洲精品第1页| 日本免费中文视频| 亚洲噜噜噜噜噜影院在线播放| 亚洲乱色伦图片区小说 | 亚洲va无码va在线va天堂| 中文字幕在亚洲第一在线| 亚洲一级特黄大片无码毛片 | 免费一级毛片不卡在线播放| 免费看国产一级特黄aa大片| 亚洲第一区精品观看| 亚洲精品在线播放| 精品国产污污免费网站入口| 亚洲一区二区免费视频| 国产在线a不卡免费视频| 亚洲欧洲成人精品香蕉网| 亚洲xxxx18| 久草免费福利视频| 日韩在线视频免费看| 亚洲伊人tv综合网色| h在线看免费视频网站男男| 好先生在线观看免费播放|