解析UML類圖關(guān)系中UML關(guān)聯(lián)和其他關(guān)系的區(qū)別和聯(lián)系
本文和大家重點討論一下UML類圖中UML關(guān)聯(lián),依賴等幾種關(guān)系的區(qū)別,在UML類圖中,關(guān)系用類框之間的連線來表示,連線上和連線端頭處的不同修飾符表示不同的關(guān)系。
UML類圖關(guān)系中UML關(guān)聯(lián),依賴,聚集,組成的聯(lián)系和區(qū)別
--------------------------------------------------------------------------------
在類圖中,除了需要描述單獨的類的名稱、屬性和操作外,我們還需要描述類之間的聯(lián)系,因為沒有類是單獨存在的,它們通常需要和別的類協(xié)作,創(chuàng)造比單獨工作更大的語義。在UML類圖中,關(guān)系用類框之間的連線來表示,連線上和連線端頭處的不同修飾符表示不同的關(guān)系。
在UML類圖關(guān)系中,關(guān)聯(lián),依賴,聚集,組成的聯(lián)系十分緊密,不容易區(qū)分,本文試圖用通俗的語言來講解這四種關(guān)系的區(qū)別。
關(guān)聯(lián);
UML類圖關(guān)系中關(guān)聯(lián)即是發(fā)生關(guān)系,一個類A關(guān)聯(lián)類B,說明類A中的字段(或?qū)傩裕┲泻蓄怋的實例鏈接(在C++中為指針),類B也可以關(guān)聯(lián)類A,他們是對等的,沒有主次之分。
依賴:
類A依賴類B,說明類A中用到了類B,這個“用到”,比關(guān)聯(lián)的程度更淺,比如,在局部變量(函數(shù)中的變量和函數(shù)參數(shù))中用到了類B,也可能是類A用到了類B的靜態(tài)函數(shù)。
聚集:
UML類圖關(guān)系中聚集也是一種關(guān)聯(lián),但是對于關(guān)聯(lián)來講,關(guān)聯(lián)的雙方都是對等的,沒有主次之分,在聚集中,則有主次之分,“主”的一方只能有一個。那計算機來說,“計算機”是一個對象,他就是“主”,而“硬盤”,“主板”,“顯示器”等等則是“次”的一方,“硬盤”,“主板”,“顯示器”聚集成“計算機”,他們只是聚集的關(guān)系,主板完蛋了,并不影響顯示器,所以大家可以理解為聚集中的對象,即是一個整體,又各自獨立。
組成:
UML類圖關(guān)系中組成是一種特殊的聚集(那當(dāng)然也是關(guān)聯(lián)嘍),拿桌子來說吧,桌子有桌面和桌腿組成,然桌面沒有了或桌腿沒有了,都不能稱之為桌子,這個意思就是說,對于組成對象的個部分來講,他們有一個有機的整體,不可分割的整體。桌子對象(主體對象)要負(fù)責(zé)桌面,桌腿(“次”對象,主次之分的“次”)的生命周期。拿C++語言來講,桌子對象內(nèi)部含有桌面對象和桌腿對象的對象實例,這可不是指針嘍,但在“聚集”中是指針,這也就是聚集和組成的區(qū)別。
【編輯推薦】
- 專家指導(dǎo) 如何區(qū)分UML類圖關(guān)系
- 專家指導(dǎo) UML類圖關(guān)系表示方法
- 深入剖析PowerDesigner UML建模
- 深入剖析UML類圖關(guān)系
- 四種UML類圖關(guān)系簡明介紹