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