2018-08-13

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Java----組合模式

出處地址http://www.cnblogs.com/V1haoge/p/6489827.html

組合模式命雀,就是在一個對象中包含其他對象权她,這些被包含的對象可能是終點(diǎn)對象(不再包含別的對象),也有可能是非終點(diǎn)對象(其內(nèi)部還包含其他對象媒咳,或叫組對象),我們將對象稱為節(jié)點(diǎn)增炭,即一個根節(jié)點(diǎn)包含許多子節(jié)點(diǎn)凰盔,這些子節(jié)點(diǎn)有的不再包含子節(jié)點(diǎn),而有的仍然包含子節(jié)點(diǎn)掷贾,以此類推睛榄。很明顯,這是樹形結(jié)構(gòu)想帅,終結(jié)點(diǎn)叫葉子節(jié)點(diǎn)场靴,非終節(jié)點(diǎn)(組節(jié)點(diǎn))叫樹枝節(jié)點(diǎn),第一個節(jié)點(diǎn)叫根節(jié)點(diǎn)。同時也類似于文件目錄的結(jié)構(gòu)形式:文件可稱之為終節(jié)點(diǎn)旨剥,目錄可稱之為非終節(jié)點(diǎn)(組節(jié)點(diǎn))咧欣。

1、我們首先來看一個目錄結(jié)構(gòu)的普通實(shí)現(xiàn):

目錄節(jié)點(diǎn):Noder



文件節(jié)點(diǎn):Filer


測試類:Clienter




2轨帜、組合模式

  從上面的代碼中可以看出魄咕,我們分別定義了文件節(jié)點(diǎn)對象與目錄節(jié)點(diǎn)對象,這是因為文件與目錄之間的操作不同蚌父,文件沒有下級節(jié)點(diǎn)哮兰,而目錄可以有下級節(jié)點(diǎn),但是我們能不能這么想:既然文件與目錄都是可以作為一個節(jié)點(diǎn)的下級節(jié)點(diǎn)而存在苟弛,那么我們可不可以將二者抽象為一類對象喝滞,雖然二者的操作不同,但是我們可以在實(shí)現(xiàn)類的方法實(shí)現(xiàn)中具體定義膏秫,比如文件沒有新增下級節(jié)點(diǎn)的方法右遭,我們就可以在文件的這個方法中拋出一個異常,不做具體實(shí)現(xiàn)缤削,而在目錄中則具體實(shí)現(xiàn)新增操作窘哈。顯示操作二者都有,可以各自實(shí)現(xiàn)僻他。而且由于我們將文件與目錄抽象為一個類型宵距,那么結(jié)合多態(tài)我們可以進(jìn)行如下實(shí)現(xiàn):

抽象類:Node


文件實(shí)現(xiàn)類:Filter


目錄實(shí)現(xiàn)類:Noder


測試類:Clienter




從上述實(shí)現(xiàn)中可以看出:所謂組合模式,其實(shí)說的是對象包含對象的問題吨拗,通過組合的方式(在對象內(nèi)部引用對象)來進(jìn)行布局满哪,我認(rèn)為這種組合是區(qū)別于繼承的,而另一層含義是指樹形結(jié)構(gòu)子節(jié)點(diǎn)的抽象(將葉子節(jié)點(diǎn)與數(shù)枝節(jié)點(diǎn)抽象為子節(jié)點(diǎn))劝篷,區(qū)別于普通的分別定義葉子節(jié)點(diǎn)與數(shù)枝節(jié)點(diǎn)的方式哨鸭。

3、組合模式應(yīng)用場景

  這種組合模式正是應(yīng)樹形結(jié)構(gòu)而生娇妓,所以組合模式的使用場景就是出現(xiàn)樹形結(jié)構(gòu)的地方像鸡。比如:文件目錄顯示,多及目錄呈現(xiàn)等樹形結(jié)構(gòu)數(shù)據(jù)的操作哈恰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末只估,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子着绷,更是在濱河造成了極大的恐慌蛔钙,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荠医,死亡現(xiàn)場離奇詭異吁脱,居然都是意外死亡桑涎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門兼贡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攻冷,“玉大人,你說我怎么就攤上這事遍希〉嚷” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵孵班,是天一觀的道長涉兽。 經(jīng)常有香客問我,道長篙程,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任别厘,我火速辦了婚禮虱饿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘触趴。我一直安慰自己氮发,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布冗懦。 她就那樣靜靜地躺著爽冕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪披蕉。 梳的紋絲不亂的頭發(fā)上颈畸,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音没讲,去河邊找鬼眯娱。 笑死,一個胖子當(dāng)著我的面吹牛爬凑,可吹牛的內(nèi)容都是我干的徙缴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼嘁信,長吁一口氣:“原來是場噩夢啊……” “哼于样!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起潘靖,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤穿剖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后秘豹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體携御,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了啄刹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涮坐。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖誓军,靈堂內(nèi)的尸體忽然破棺而出袱讹,到底是詐尸還是另有隱情,我是刑警寧澤昵时,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布捷雕,位于F島的核電站,受9級特大地震影響壹甥,放射性物質(zhì)發(fā)生泄漏救巷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一句柠、第九天 我趴在偏房一處隱蔽的房頂上張望浦译。 院中可真熱鬧,春花似錦溯职、人聲如沸精盅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹俏。三九已至,卻和暖如春僻族,著一層夾襖步出監(jiān)牢的瞬間粘驰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工鹰贵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晴氨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓碉输,卻偏偏與公主長得像籽前,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敷钾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,898評論 2 89
  • 【學(xué)習(xí)難度:★★★☆☆枝哄,使用頻率:★★★★☆】直接出處:組合模式梳理和學(xué)習(xí):https://github.com/...
    BruceOuyang閱讀 982評論 0 1
  • 孩子剛出生的時候,我就把孫瑞雪老師的《捕捉兒童敏感期》這本書看了一遍阻荒,像視覺挠锥、口腔、空間侨赡、語言之類的敏感期都給我留...
    暖心伴你成長閱讀 449評論 0 0
  • 人的際遇有時候就是不經(jīng)意間出現(xiàn)蓖租,就像昨晚偶遇某個陌生人對你嫣然一笑粱侣,無論后面其他人再說出什么動聽的話,你什么都...
    wei朵兒瑜伽閱讀 1,508評論 0 3
  • 我原本沒想過這么早養(yǎng)寵物的蓖宦,一是覺得麻煩齐婴,自個兒還沒活自在呢,退休再說吧稠茂。二是怕影響兒子學(xué)習(xí)柠偶,在中國的教育體...
    起翮閱讀 375評論 0 2