UML 類圖中的六種關係是什麼?
六種類關係
類之間有六種主要的關係類型:繼承、實現/實現、組合、聚合、關聯和依賴。六種關係的箭頭如下:
然後我們來了解類關係的具體內容。
六種關係
在六類關係中,組合、聚合、關聯三類關係的代碼結構與使用屬性存儲另一個類的引用相同。因此,必須通過內容之間的關係來區分它們。
遺產
繼承也稱為泛化,用於描述父類和子類之間的關係。父類也稱為基類,子類也稱為派生類。
在繼承關係中,子類繼承父類的所有功能,父類擁有所有的屬性、方法和子類。除了與父類相同的信息外,子類還包含其他信息。
例如:公共汽車、出租車、汽車都是汽車,它們都有名字,都可以在路上。
實現/實施
實現(Implementation)主要用於指定接口與實現類之間的關係。
接口(包括抽像類)是方法的集合。在實現關係中,一個類實現一個接口,類中的方法實現接口聲明的所有方法。
例如:汽車和船舶都是交通工具,而交通工具只是移動工具的抽象概念,而船舶和交通工具實現了特定的移動功能。
組成關係
構圖:整體與局部的關係,但整體與局部不可分割。
組合關係表示類的整體和部分之間的關係,整體和部分具有一致的生命週期。一旦整體對像不存在,部分對像也就不存在了,它們都會在同一個生命中死去。例如,一個人是由一個頭和一個身體組成的。兩者密不可分,並存。
聚合關係
聚合:整體與部分的關係,整體與部分可以分離。
聚合關係也代表了類的整體和部分的關係,成員對像是整體對象的一部分,但成員對象可以獨立於整體對象而存在。
例如,公交車司機和工作服和帽子是整體關係的一部分,但它們可以分開。工作服和帽子可以穿在其他司機身上。公交車司機也可以穿其他工作服和帽子。
關聯關係
關聯:表示一個類的屬性持有對另一個類的一個(或多個實例)的引用。
關聯是類與類之間最常用的關係,表示一種對象與另一種對象之間存在聯繫。組合和聚合也屬於關聯關係,但隸屬關係類之間的關係比其他兩個弱。
關聯有四種:雙向關聯、單向關聯、自關聯和多號關聯。
例如:汽車和司機,一輛車對應一個特定的司機,一個司機可以開多輛汽車。
在 UML 圖中,雙向關聯可以有兩個箭頭或沒有箭頭,單向關聯或自關聯有一個箭頭。
在多重關係中,您可以直接在關聯行中添加一個數字,以表示相應類中的對像數量。
-
1..1
: 只有一個 -
0..*
: 零個或多個 -
1..*
:一個或多個 -
0..1
: 沒有或只有一個 -
m..n
: 至少 m,最多 n (m<=n)
依賴項
依賴:假設A類的變化導致B類的變化,那麼說B類依賴於A類。
在大多數情況下,依賴關係反映在使用另一個類的對像作為參數的類的方法中。
依賴關係是一種“使用”關係。一個特定事物的變化可能會影響其他使用它的事物,並在需要指示一個事物使用另一個事物時使用依賴關係。例如:汽車依賴汽油。如果沒有汽油,汽車將無法行駛。
類圖——訂單系統
下面的類圖對來自零售目錄的客戶訂單進行建模。中心類是Order。與之相關的是進行購買和付款的客戶。付款是以下四種之一:現金、支票、信用卡或電匯。訂單包含OrderDetails(行項目),每個項目都有關聯的Item。