类图
类图展示各个类、它们持有什么、做什么,以及它们之间的关系。它以 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 会在某个类旁边放置一条注释。