posts - 8, comments - 13, trackbacks - 0, articles - 43
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          聚合與組合的區(qū)別?

          Posted on 2010-08-01 14:17 kangaroo 閱讀(27114) 評(píng)論(5)  編輯  收藏

          記得在當(dāng)時(shí)學(xué)習(xí)uml總是不好分清聚合與組合的關(guān)系,找工作時(shí)特地復(fù)習(xí)了這塊的內(nèi)容,結(jié)果正巧被面試官問(wèn)道,這兩天又在搞這塊的內(nèi)容,對(duì)聚合與組合有了更清楚的了解:

          聚合:表示兩個(gè)對(duì)象之間是整體和部分的關(guān)系,部分的生命周期可以超越整體。如電腦和鼠標(biāo),就可以用一下圖形表示:



          組合:表示兩個(gè)對(duì)象之間是整體和部分的強(qiáng)關(guān)系,部分的生命周期不能超越整體,或者說(shuō)不能脫離整體而存在。組合關(guān)系的“部分”,是不能在整體之間進(jìn)行共享的。如人和眼睛的關(guān)系:

          不過(guò),如果你要說(shuō),眼睛可以移植,是不是說(shuō)可以脫離人而存在,它們就不是組合關(guān)系了?其實(shí),UML中對(duì)象的關(guān)系都是在相應(yīng)的軟件環(huán)境或?qū)嶋H場(chǎng)景下定義的,這里區(qū)別聚合和組合的關(guān)系,關(guān)鍵還是在于它們之中整體和部分的關(guān)系強(qiáng)、弱,以及它們之間的依附關(guān)系。如果剛才說(shuō)眼睛可以移植給別人,那你也可以把它認(rèn)為是聚合,這都要結(jié)合實(shí)際場(chǎng)景來(lái)說(shuō)明。

          另外兩個(gè)比較重要的關(guān)系是關(guān)聯(lián)和依賴:
          關(guān)聯(lián):簡(jiǎn)單的可以認(rèn)為,如果一個(gè)類(lèi)作為了另外一個(gè)類(lèi)的屬性,那一定是關(guān)聯(lián)關(guān)系。但你要知道,聚合是一種特殊的關(guān)聯(lián),而組合又是一種特殊的聚合。一般的關(guān)聯(lián)我們認(rèn)為是平級(jí)的、無(wú)整體部分關(guān)系的,如朋友關(guān)系。

          依賴:對(duì)象之間的臨時(shí)關(guān)系,臨時(shí)性體現(xiàn)在不超越方法的周期。簡(jiǎn)單的說(shuō),在方法使用到的,如參數(shù)類(lèi),就一定是依賴關(guān)系。

          最后想說(shuō)一句,實(shí)際工作中,我并沒(méi)有發(fā)現(xiàn)區(qū)分這四種關(guān)系有多么大的用處,也許自己還沒(méi)有碰到,只是覺(jué)得可能每個(gè)學(xué)習(xí)它的同學(xué)總想把它搞清楚,但實(shí)際工作中作用并不明顯。

          評(píng)論

          # re: 聚合與組合的區(qū)別?  回復(fù)  更多評(píng)論   

          2011-06-11 17:37 by 訛213213
          123

          # re: 聚合與組合的區(qū)別?  回復(fù)  更多評(píng)論   

          2012-05-17 22:44 by 歐迪佐
          對(duì)于是否完全控制對(duì)象內(nèi)部,作為屬性的其他對(duì)象的生命周期,如果是強(qiáng)關(guān)系則控制,弱關(guān)系就由外部去控制。

          # re: 聚合與組合的區(qū)別?  回復(fù)  更多評(píng)論   

          2014-09-01 10:52 by 564+

          2

          # re: 聚合與組合的區(qū)別?  回復(fù)  更多評(píng)論   

          2014-11-07 19:48 by yrsb
          等于沒(méi)說(shuō)

          # re: 聚合與組合的區(qū)別?[未登錄](méi)  回復(fù)  更多評(píng)論   

          2015-07-28 09:07 by 111
          確實(shí)等于沒(méi)說(shuō)

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吉安市| 固原市| 石景山区| 保康县| 贵阳市| 靖宇县| 德江县| 丰宁| 晋州市| 澎湖县| 贵德县| 库尔勒市| 稷山县| 宁国市| 永安市| 瑞安市| 呼图壁县| 万荣县| 望谟县| 滨州市| 穆棱市| 紫云| 莆田市| 云南省| 郴州市| 屏东县| 峡江县| 芷江| 兰西县| 云南省| 精河县| 黄浦区| 武穴市| 阳朔县| 福州市| 江山市| 乳山市| 海丰县| 青神县| 玉溪市| 罗江县|