快速搞懂 UML 類別圖 6 種關係線( Dependency、Association、Aggregation、Composition、Generalization、Realization )
在學習 OOP Design Pattern 時常常需要看懂 UML 圖上的各種類別與類別間的關係線,本篇就快速整理 UML 圖中經常使用的 6 種關係線及含義。
Dependency
依賴(Dependency),通常用 虛線箭頭
表示,假設 A 類別依賴 B 類別,那箭頭就會由 A 指向 B :
Association
關聯(Association),通常用 實線箭頭
表示,用一對多來舉例,假設 A 類別擁有多個 B 類別,那箭頭就會由 A 指向 B :
更多關聯形式可以參考這篇。
Aggregation
聚合(Aggregation),通常用 空心菱形實線 或 空心菱形實線箭頭
表示,一種表現弱擁有的概念,假設 A 類別是由 B 類別聚合而成,當 A 類別被銷毀時,B 類別不會連帶被影響,也就是如果沒有 A 類別,B 類別是可以獨立存在的。
Composition
組合(Composition),通常使用 實心菱形實線 或 實心菱形實線箭頭
,表示兩個類別間不可分離的概念。假設 A 類別擁有 B 類別,當 A 銷毀時 B 也會連帶銷毀,A 和 B 都無法獨立存在。
Generalization
泛化 / 繼承(Generalization),通常使用 空心三角形實線
,表示繼承關係,假設 A 類別繼承 B 類別,箭頭就由 A 指向 B。
Realization
實現(Realization),通常使用 空心三角形需線
,表示需要實作某 Interface 上的行為。
最後整理一下上述提到的關係線:
Reference: