Class Diagram
Class diagram describes the structure of a system by showing the system’s classes, their attributes, operations (or methods), and the relationships among objects.
類別圖描述了系統的類別集合,類別的屬性和類別之間的關係。
關聯 (Association) :以實線箭頭表示。
關聯關係使一個類別知道另外一個類別的屬性和方法;
通常含有「知道」、「瞭解」的含義。
- 貓咪知道天氣情況
實作 (Implementation) :以空心三角形的虛線箭頭表示。
實作關係指的是一個 class 類別實現 interface 介面。
- 飛機實作可飛行介面
聚合 (Aggregation):以空心菱形的實線表示。
聚合關係是整體與部分的「弱」包含關係。
部分類別可單獨存在,也可以屬於多個整體物件。
描述has-a的關係
- 學校包含學生、課堂包含學生
- 學生可以單獨存在
組成(Composition):以實心菱形的實線表示。
組成關係是整體與部分的「強」包含關係。
部分類別無法單獨存在,其生命週期與整體相同。
描述contains-a的關係
- 手錶包含時針、時鐘包含時針
- 時針無法單獨存在
繼承 (Inheritance):以空心三角形的實線箭頭表示。
繼承關係指的是父類別擁有子類別的共有功能。
而子類別可以視作父類別的特例。
描述is-a的關係
- 學生是人的特例、工程師是人的特例
ʕ •ᴥ•ʔ:學習Design Pattern的過程中,一定會遇到的圖形!
寫完才發現,自己很少描述聚合跟組成的關係。