繁體中文
English 简体中文 繁體中文
Methodox 首頁

類圖

類圖展示各個類、它們持有什麼、做什麼,以及它們之間的關係。它以 class 及其標題開頭。

class Shapes on a canvas
Shape [abstract]
  + name: string
  + area(): number
  + draw()
Circle
  - radius: number
  + area(): number
Square
  - side: number
  + area(): number
Canvas
  + shapes: Shape[]
  + render()
Shape <|- Circle
Shape <|- Square
Canvas o- Shape: holds

上面的文字:Canvas 持有多個 Shape,Circle 和 Square 繼承自抽象類 Shape

設定

設定 別名 值
direction flow, orientation, layout, rankdir down(預設)、right、up 或 left

類和成員

類名單獨寫在一行上 —— 寫作 class Name 也一樣 —— 其成員縮排寫在它的下方。帶括號的成員是操作,放在類的第二欄中;其他成員都是欄位。

成員以其可見性開頭,可以寫成符號或單詞:

符號 單詞 可見性
+ public 公共
- private 私有
# protected 受保護 —— 需寫成單詞,因為以 # 開頭的行是註解
~ internal, package 內部

成員前的 static 會為其加底線,abstract 會將其設為斜體:static count: number、abstract deposit(amount)。不屬於任何類的成員 —— 寫在頂層而不是某個類下方 —— 會被指出。

構造型

類名後方括號中的單詞,如果不是顏色、角色或 muted,就是該類的構造型,顯示在類名上方:[interface]、[abstract]、[enum]、[record]、[service] —— 任何你需要的詞都可以。

關係

普通箭頭繪製關聯和依賴 —— Order -> Customer、Report ..> Printer —— 而 UML 的端點符號(兩側各留一個空格)繪製其餘關係:

  • <|-、<|--、-|>、--|> —— 繼承:在更一般的類一端畫空心三角形。
  • <|..、..|> —— 實現:虛線,在介面一端畫空心三角形。
  • *-、*--、-*、--* —— 組合:在整體一端畫實心菱形。
  • o-、o--、-o、--o —— 聚合:在整體一端畫空心菱形。

每種關係中更一般的一端 —— 基類、介面、整體 —— 會佈局在另一端的上方。標籤寫在冒號之後:Canvas o- Shape: holds。

兩端各帶一個計數的連線表示多重性:Bank 1-* Account。每一端可以是 1、0..1、1..*(也可寫作 1..n)或 *(也可寫作 0..*、n、many)。

class Accounts
Account [abstract]
  protected balance: number
  static count: number
  abstract deposit(amount)
Saving
  - rate: number
  + addInterest()
IAudited [interface]
  + audit()
Bank
  + accounts: Account[]
Account <|- Saving
Account ..|> IAudited
Bank 1-* Account: holds

上面的文字:一個受保護欄位、一個帶底線的靜態欄位、一個斜體的抽象操作、一個以虛線實現的介面,以及持有多個 Account 的 Bank

包和註解

package Name —— 也可寫作 namespace 或 group —— 會為縮排在其下方的類加上邊框。note Class: what to say 會在某個類旁邊放置一條註解。