UML類別圖說明

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的過程中,一定會遇到的圖形!
寫完才發現,自己很少描述聚合組成的關係。