UML類圖關係你是否熟悉,本文就向大家簡單介紹一下幾種UML類圖關係的區別,希望通過本文的學習你對這幾種UML類圖關係的特點有一定的認識。
本文和大家重點討論一下幾種UML類圖關係的區別,UML類圖關係中的 ”關聯關係(association) “、”聚合關係(aggregation) “、”合成關係 (compostion)“和”依賴關係 (dependency)“ 不是很容易區分清楚,這裏和大家分享一下它們之間的區別。
區分幾種UML類圖關係
UML類圖關係中的 ”關聯關係(association) “、”聚合關係(aggregation) “、”合成關係 (compostion)“和”依賴關係 (dependency)“ 不是很容易區分清楚,《UML distilled》對這幾個關係也沒有解釋的特別清楚。近日翻閱《Java 與模式》,發現其中對這些關係有較爲清晰的描述,特摘錄如下:
1、關聯關係 (association):
1、UML類圖關係中關聯關係是類與類之間的聯結,它使一個類知道另一個類的屬性和方法。
2、關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
3、在 Java 或 c++ 中,關聯關係是通過使用成員變量來實現的。
2、聚合關係 (aggregation):
1、UML類圖關係中聚合關係是關聯關係的一種,是強的關聯關係。
2、聚合是整體和部分之間的關係,例如汽車由引擎、輪胎以及其它零件組成。
3、聚合關係也是通過成員變量來實現的。但是,關聯關係所涉及的兩個類處在同一個層次上,而聚合關係中,兩個類處於不同的層次上,一個代表整體,一個代表部分。
4、關聯與聚合僅僅從 Java 或 C++ 語法上是無法分辨的,必須考察所涉及的類之間的邏輯關係。
3、合成關係 (composition):
1、UML類圖關係中合成關係是關聯關係的一種,是比聚合關係還要強的關係。
2、它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期。
4、依賴關係 (dependency):
1、UML類圖關係中依賴關係也是類與類之間的聯結
2、依賴總是單向的。
3、依賴關係在 Java 或 C++ 語言中體現爲局部變量、方法的參數或者對靜態方法的調用。
5、總結:
1、UML類圖關係中不同的關係採用不同的 UML 圖例
2、對於聚合關係、合成關係,由於都是關聯關係的一種,因此在不確定的情況下,可以以關聯關係來描述它們。