介紹
類圖是一種靜態的UML(統一建模語言)圖表,透過呈現系統的類別、屬性、方法和關係來模擬系統的結構。所提供的圖表展示了用於管理客戶帳戶、訂單、書籍及相關實體的電子商務系統。本教程將剖析此圖表,解釋關鍵概念,提供多個類圖範例,並提供技巧與訣竅,以協助建立清晰且功能完整的類圖。
第一部分:理解電子商務系統的類圖
圖表概覽

此圖表代表一個電子商務系統,包含以下關鍵實體:
- 客戶:代表具有帳戶詳情的使用者。
- 客戶帳戶:與客戶相關聯的詳細帳戶。
- 客戶評分:追蹤客戶評分。
- 主帳戶清單:管理多個客戶帳戶。
- 結帳:處理訂單的結帳流程。
- 訂單:代表客戶的訂單,包含付款詳情。
- 信用卡:儲存付款資訊。
- 數位錢包:另一種付款方式。
- 購物聊天:促進客戶支援。
- 作者:代表書籍作者。
- 分類:對書籍進行分類(小說/非小說)。
- 書籍:核心產品,包含標題和類型等詳細資訊。
- 主目錄:管理書籍目錄。
- 書籍評論:儲存書籍的評論。
- 願望清單:允許客戶保存想要的書籍。
- 搜尋方法:提供搜尋功能。
圖中的關係
- 關聯:
- 客戶 與 … 連結客戶帳戶 和 客戶評分.
- 客戶帳戶 是 … 的一部分主帳戶清單.
- 結帳 與 … 關聯訂單.
- 訂單 使用 信用卡 或 數位錢包 用於付款。
- 書籍 與 … 連結作者, 類別, 書籍評論,以及願望清單.
- 聚合:
- 主目錄 聚合書籍(開放菱形箭頭)。
- 依賴:
- 搜尋方法 取決於主目錄.
- 多樣性:
- 1(一對一,例如一個客戶對一個客戶帳戶).
- * (零個或更多,例如,許多 訂單 個實例每 結帳).
第二部分:類圖的關鍵概念
核心組件
- 類:
- 一個有三個部分的矩形:類名、屬性與方法。
- 範例:書 具有屬性 -頁數:整數, -書名:字串,以及方法 +printBook().
- 屬性:
- 類中的資料欄位,以存取權限前綴(+ 公開,– 私有)。
- 範例:-卡號:整數 在 信用卡.
- 方法:
- 類別的操作或行為,也包含可見性。
- 範例:+totalPayment() 在 主帳戶清單.
- 關係:
- 關聯:類別之間的一般性連結(例如,客戶 到 訂單).
- 聚合:一種「整體-部分」關係,其中部分可以獨立存在(例如,主目錄 和 書籍).
- 組成:一種強烈的「整體-部分」關係(在此處未明確顯示,但在某些情況下有所暗示)。
- 依賴:一個類別依賴於另一個類別(例如,搜尋方法 在 主目錄).
- 繼承: 此圖中未顯示,但在 UML 中常見(例如,某個類的子類為 客戶).
- 多重性:
- 定義實例數量(例如,1 表示一個,* 表示多個)。
- 範例:客戶帳戶 到 主帳戶清單(暗示一對多)。
關鍵原則
- 抽象: 聚焦於核心元素,省略次要細節。
- 封裝: 使用可見性來控制對屬性和方法的存取。
- 模組化: 將系統劃分為可重用的類別。
- 一致性: 保持命名與格式的一致性。
第三部分:建立有效類圖的指南
- 識別實體:
- 列出所有主要物件(例如,客戶, 書籍, 訂單).
- 定義屬性和方法:
- 僅包含相關的資料與行為。
- 繪製關係:
- 使用適當的連接符號(例如,以線表示關聯,菱形表示聚合)。
- 使用多重性:
- 指定涉及多少個實例(例如,1..*表示一個或以上)。
- 保持簡潔:
- 避免過於擁擠;必要時可使用多個圖表。
- 驗證:
- 確保圖表能反映系統的邏輯,並讓他人容易理解。
第四部分:類圖範例
以下是受電子商務系統啟發的多個類圖範例,範圍從簡單到複雜。
範例 1:基本客戶與帳戶關係

- 說明:
- 一個 客戶擁有一個 客戶帳戶(一對一關聯)。
範例 2:主帳戶清單與客戶帳戶

- 說明:
- 主帳戶清單管理一個或多個 客戶帳戶實例(一對多)。
範例 3:訂單與付款方式
- 說明:
- 一個 訂單可以使用一個 信用卡或 數位錢包(一對一關聯)。
範例 4:書籍與相關實體
- 說明:
- 一個 作者撰寫一個或多個 書籍實例。
- 一個 類別 分類一個或多個 書籍 實例。
範例 5:主目錄與書籍評論

- 說明:
- 主目錄 聚合一個或多個 書籍 實例(聚合,使用 o–>).
- 一個 書籍 可以有零個或多個 書籍評論 實例。
範例 6:完整的電子商務系統

- 說明:
- 這反映了原始圖示,包含所有實體與關係。
- 使用關聯、聚合(o–>),以及依賴(..>).
結論
類圖對於建模如圖中所示電子商務平台之系統結構至關重要。透過掌握關聯、聚合與多重性等關鍵概念,並遵循清晰的設計準則,您便能建立有效的圖示。所提供的類圖範例涵蓋從簡單關係到完整系統模型的各種層面,展現實際應用。透過上述技巧與提示,您可提升繪圖技巧,並在系統設計中更有效地協作。
本教程為基於電子商務系統創建類圖提供了全面的基礎。如果您需要更多範例或進階技巧,請告知我!











