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

          2010年8月1日

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

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



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

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

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

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

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

          posted @ 2010-08-01 14:17 kangaroo 閱讀(27141) | 評論 (5)編輯 收藏

          打開visio想創(chuàng)建一個類圖,卻發(fā)現(xiàn)沒有找到UML Model Diagram,從網(wǎng)上看到可以在UML Static Structure里找到“Class”,但是發(fā)現(xiàn)使用起來很不方便,甚至不好增加類名,就在網(wǎng)上搜索一下,中文的沒有提到,就搜索了一下“uml model diagram  template download”,在
          http://softwarestencils.com/uml/index.html#Visio2007
          找到了需要的template,然后解壓到"C:\Documents and Settings\<user name>\My Documents\My Shapes",重新啟動Visio,默認的快速創(chuàng)建頁面就有UML Model Diagram。That is it!

          posted @ 2010-08-01 13:41 kangaroo 閱讀(2264) | 評論 (1)編輯 收藏

          主站蜘蛛池模板: 沅江市| 湖南省| 嘉黎县| 随州市| 本溪| 米易县| 东丰县| 涟源市| 响水县| 凉山| 家居| 于都县| 高青县| 永登县| 尉犁县| 屏东市| 陵川县| 石景山区| 庐江县| 建阳市| 延吉市| 泗洪县| 哈巴河县| 同心县| 清新县| 池州市| 玉屏| 咸丰县| 拜城县| 仁布县| 黄冈市| 翁牛特旗| 沙田区| 通许县| 深水埗区| 荆州市| 墨玉县| 古交市| 南乐县| 资兴市| 武胜县|