UML中關聯,依賴,聚集,組成的聯繫和區別

在UML中,關聯,依賴,聚集,組成的聯繫十分緊密,不容易區分,本文試圖用通俗的語言來講解這四種關係的區別。
 
關聯,即是發生關係,一個類A關聯類B,說明類A中的字段(或屬性)中含有類B的實例鏈接(在C++中爲指針),類B也可以關聯類A,他們是對等的,沒有主次之分。
 
依賴,類A依賴類B,說明類A中用到了類B,這個“用到”,比關聯的程度更淺,比如,在局部變量(函數中的變量和函數參數)中用到了類B,也可能是類A用到了類B的靜態函數。
 
聚集:聚集也是一種關聯,但是對於關聯來講,關聯的雙方都是對等的,沒有主次之分,在聚集中,則有主次之分,“主”的一方只能有一個。那計算機來說,“計算機”是一個對象,他就是“主”,而“硬盤”,“主板”,“顯示器”等等則是“次”的一方,“硬盤”,“主板”,“顯示器”聚集成“計算機”,他們只是聚集的關係,主板完蛋了,並不影響顯示器,所以大家可以理解爲聚集中的對象,即是一個整體,又各自獨立。
 
組成:組成是一種特殊的聚集(那當然也是關聯嘍),拿桌子來說吧,桌子有桌面和桌腿組成,然桌面沒有了或桌腿沒有了,都不能稱之爲桌子,這個意思就是說,對於組成對象的個部分來講,他們有一個有機的整體,不可分割的整體。桌子對象(主體對象)要負責桌面,桌腿(“次”對象,主次之分的“次”)的生命週期。拿C++語言來講,桌子對象內部含有桌面對象和桌腿對象的對象實例,這可不是指針嘍,但在“聚集”中是指針,這也就是聚集和組成的區別。
 
~~The END~~
 
尹曙光

發佈了31 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章