UML類圖中四大關(guān)系詳解
本文和大家重點討論一下UML類圖的幾種關(guān)系,UML類圖中主要有”關(guān)聯(lián)關(guān)系(association)“、”聚合關(guān)系(aggregation)“、”合成關(guān)系(compostion)“和”依賴關(guān)系(dependency)“等幾種。
UML類圖的幾種關(guān)系
UML類圖中的”關(guān)聯(lián)關(guān)系(association)“、”聚合關(guān)系(aggregation)“、”合成關(guān)系(compostion)“和”依賴關(guān)系(dependency)“不是很容易區(qū)分清楚,《UMLdistilled》對這幾個關(guān)系也沒有解釋的特別清楚。近日翻閱《Java與模式》,發(fā)現(xiàn)其中對這些關(guān)系有較為清晰的描述,特摘錄如下:
一、UML類圖的關(guān)聯(lián)關(guān)系(association):
1、關(guān)聯(lián)關(guān)系是類與類之間的聯(lián)結(jié),它使一個類知道另一個類的屬性和方法。
2、關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。
3、在Java或c++中,關(guān)聯(lián)關(guān)系是通過使用成員變量來實現(xiàn)的。
二、UML類圖的聚合關(guān)系(aggregation):
1、聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系。
2、聚合是整體和部分之間的關(guān)系,例如汽車由引擎、輪胎以及其它零件組成。
3、聚合關(guān)系也是通過成員變量來實現(xiàn)的。但是,關(guān)聯(lián)關(guān)系所涉及的兩個類處在同一個層次上,而聚合關(guān)系中,兩個類處于不同的層次上,一個代表整體,一個代表部分。
4、關(guān)聯(lián)與聚合僅僅從Java或C++語法上是無法分辨的,必須考察所涉及的類之間的邏輯關(guān)系。
三、UML類圖的合成關(guān)系(composition):
1、合成關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強的關(guān)系。
2、它要求普通的聚合關(guān)系中代表整體的對象負責代表部分的對象的生命周期。
四、UML類圖的依賴關(guān)系(dependency):
1、依賴關(guān)系也是類與類之間的聯(lián)結(jié)
2、依賴總是單向的。
3、依賴關(guān)系在Java或C++語言中體現(xiàn)為局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用。
publicclassPerson
{
publicvoidbuy(Carcar)
{
...
}
}
五、總結(jié):
1、UML類圖中不同的關(guān)系采用不同的UML圖例
2、對于聚合關(guān)系、合成關(guān)系,由于都是關(guān)聯(lián)關(guān)系的一種,因此在不確定的情況下,可以以關(guān)聯(lián)關(guān)系來描述它們。
【編輯推薦】
- 學習筆記 UML類圖詳解
- 六大UML類圖關(guān)系連連看
- UML用例圖三大關(guān)系揭秘
- UML類圖設(shè)計在Java程序中的應(yīng)用
- UML類圖用途及創(chuàng)建方法揭秘