快速搞懂 UML 類別圖 6 種關係線( Dependency、Association、Aggregation、Composition、Generalization、Realization )

Tung
Nov 6, 2022

--

在學習 OOP Design Pattern 時常常需要看懂 UML 圖上的各種類別與類別間的關係線,本篇就快速整理 UML 圖中經常使用的 6 種關係線及含義。

Dependency

依賴(Dependency),通常用 虛線箭頭 表示,假設 A 類別依賴 B 類別,那箭頭就會由 A 指向 B

車子(Car)依賴駕駛(Driver)

Association

關聯(Association),通常用 實線箭頭 表示,用一對多來舉例,假設 A 類別擁有多個 B 類別,那箭頭就會由 A 指向 B

人(Person)擁有多台車子(Car)

更多關聯形式可以參考這篇

Aggregation

聚合(Aggregation),通常用 空心菱形實線 或 空心菱形實線箭頭表示,一種表現弱擁有的概念,假設 A 類別是由 B 類別聚合而成,當 A 類別被銷毀時,B 類別不會連帶被影響,也就是如果沒有 A 類別,B 類別是可以獨立存在的

車子(Car)由輪子(Wheel)聚合而成

Composition

組合(Composition),通常使用 實心菱形實線 或 實心菱形實線箭頭,表示兩個類別間不可分離的概念。假設 A 類別擁有 B 類別,當 A 銷毀時 B 也會連帶銷毀,A 和 B 都無法獨立存在。

人(Person)由兩隻手(Hands)組合而成

Generalization

泛化 / 繼承(Generalization),通常使用 空心三角形實線,表示繼承關係,假設 A 類別繼承 B 類別,箭頭就由 A 指向 B。

Truck 和 Taxi 繼承 Car

Realization

實現(Realization),通常使用 空心三角形需線,表示需要實作某 Interface 上的行為。

Truck 和 Taxi 分別實現 ICar 上 Refuel 的方法

最後整理一下上述提到的關係線:

Reference:

--

--

No responses yet