類圖
類圖展示各個類、它們持有什麼、做什麼,以及它們之間的關係。它以 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

設定
| 設定 | 別名 | 值 |
|---|---|---|
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

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