iT邦幫忙

2024 iThome 鐵人賽

DAY 3
1
Software Development

前端也想學設計模式系列 第 3

Day 03 - UML Class Diagram 類別圖

  • 分享至 

  • xImage
  •  

類別圖是一種 UML (Unified Modeling Language) 中的靜態結構圖,主要用於呈現系統中的類別的靜態結構。類別圖中包含了該系統的類別、類別的屬性與方法以及類別的交互關係等資訊,能夠快速地展現一個系統的樣貌,協助開發人員進行分析與設計。

Class Diagram

上圖是一張非常簡易的交通工具類別圖,圖中包含交通工具類別、汽車類別以及飛行器類別。從圖中可以看出汽車類別和飛行器類別都繼承自交通工具類別,交通工具類別負責提供交通工具的通用屬性與方法,汽車類別與飛行器類別則擁有特定的屬性與行為。

接著來看看類別圖中包含哪些元素:

類別

Class Explanation

一個類別包含名稱、屬性與方法。

可見性 (Visibility)

類別圖使用以下四種符號來標註類別成員如何被存取。

  • + - 公開:可供任何人存取
  • - - 私有:只供該類別存取
  • # - 保護:可供類別與子類別存取
  • ~ - 套件:可供套件中的類別存取

關係

類別圖使用關係線來表示類別與類別之間的關係。

關聯 (Association)
Association Relationship
表示一個類別持有另一個類別的參照,能夠存取另一類別的屬性與方法。兩個類別可以動態地建立、解除關聯關係,一個物件可以同時與多個對象建立關聯。

依賴 (Dependency)
Dependency Relationship
依賴關係是一種使用關係,當 A 類別使用 B 類別時,我們稱 A 類別依賴於 B 類別。與其他關係不同,依賴關係不涉及控制或持有等行為,但是 B 類別的改變可能會連帶使 A 類別發生改變。

繼承 (Inheritance)
Inheritance Relationship
以既有類別為基礎建立一個新類別。新類別為基礎類別的子類別,繼承了基礎類別的屬性與方法,還能擴展或複寫基礎類別的屬性與方法。

實現 (Implementation)
Implementation Relationship
表示類別滿足了介面的定義,實現了介面中的屬性與方法。

聚合 (Aggregation)
Aggregation Relationship
表示整體與部分的關係。部分類別是獨立的個體,可以在不依賴於整體類別的情況下存在,並能同時屬於多個整體對象。

組成 (Composition)
Composition Relationship
表示整體與部分的關係,是聚合關係的強化版。整體類別控制部分類別的生命週期,負責創造和銷毀部分類別。部分類別無法獨立於整體類別存在,當整體類別銷毀時,部分類別的生命週期也隨之結束。

類別圖能夠清楚地呈現系統中的元素,因此非常適合用來展示軟體架構。本系列會在每個設計模式的章節中提供相關的類別圖,讓讀者更加清楚地了解這些模式的組成與定義。


上一篇
Day 02 - 何謂設計模式
下一篇
Day 04 - 堅若磐石 SOLID
系列文
前端也想學設計模式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言