iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
2
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 7

Day7. UML類別圖說明

本文同步更新於blog

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) :以實線箭頭表示。

關聯關係使一個類別知道另外一個類別的屬性和方法;
通常含有「知道」、「瞭解」的含義。

  • 貓咪知道天氣情況

https://ithelp.ithome.com.tw/upload/images/20200921/20111630KgVtDhUBel.png

實作 (Implementation) :以空心三角形的虛線箭頭表示。

實作關係指的是一個 class 類別實現 interface 介面。

  • 飛機實作可飛行介面

https://ithelp.ithome.com.tw/upload/images/20200921/20111630mUdfEiyKQC.png

聚合(Aggregation):以空心菱形的實線表示。

聚合關係是整體與部分的「弱」包含關係。
部分類別可單獨存在,也可以屬於多個整體物件。

描述has-a的關係

  • 學校包含學生、課堂包含學生
  • 學生可以單獨存在

https://ithelp.ithome.com.tw/upload/images/20200921/20111630hJ0pDzF7aF.png

組成(Composition):以實心菱形的實線表示。

組成關係是整體與部分的「強」包含關係。
部分類別無法單獨存在,其生命週期與整體相同。

描述contains-a的關係

  • 手錶包含時針、時鐘包含時針
  • 時針無法單獨存在

https://ithelp.ithome.com.tw/upload/images/20200921/20111630VETaGYOlch.png

繼承 (Inheritance):以空心三角形的實線箭頭表示。

繼承關係指的是父類別擁有子類別的共有功能。
而子類別可以視作父類別的特例。

描述is-a的關係

  • 學生人的特例、工程師人的特例

https://ithelp.ithome.com.tw/upload/images/20200921/20111630OXm4kc58Uv.png

ʕ •ᴥ•ʔ:學習 Design Pattern 的過程中,一定會遇到的圖形!
寫完才發現,自己很少描述聚合組成的關係。


上一篇
Day6. 依賴反轉原則
下一篇
Day8. 簡單工廠模式
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言