类图
类图(classDiagram)描述系统中类的结构与类之间的关系,是 UML 最常用的图示。类成员(属性/方法)定义静态结构,关系线(继承、组合、聚合、依赖、实现)定义类之间的耦合方式。架构设计与代码评审文档用它最合适。本文是 Mermaid 的类图分册。
提示
类图速记:class 定义类,: 后跟成员,() 区分方法与属性;关系线方向固定——<|-- 继承、*-- 组合、o-- 聚合、..> 依赖、..|> 实现。
定义类与成员
两种定义方式:显式 class Animal,或通过关系隐式定义(Vehicle <|-- Car 会同时创建两个类)。
classDiagram
class BankAccount{
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
}- 带
()的是方法,不带的是属性;方法)后加返回值 - 可见度前缀:
+Public、-Private、#Protected、~Package - 泛型用
~包裹:List~int~(不支持嵌套泛型)
关系
| 类型 | 写法 | 含义 |
|---|---|---|
| 泛化(继承) | <|-- | 类与子类 |
| 组合 | *-- | 整体与部分,生命周期绑定(contains-a,强) |
| 聚合 | o-- | 整体与个体(has-a,弱) |
| 关联 | --> | 类引用另一个类 |
| 依赖 | ..> | 使用关系(方法参数等) |
| 实现 | ..|> | 类与接口 |
| 双向 | 两边都写(Link 不支持双向) | 互相引用 |
关系可以加标签和多重点:Customer "1" --> "*" Ticket(一个客户对应多张票)。
注解与方向
- 类注解:
<<interface>>、<<abstract>>、<<Service>>、<<enumeration>>标记在类定义后的单独一行 - 方向:
direction RL设置整体布局(默认 TB) - 注释:
%%开头
classDiagram
direction RL
class Student {
-idCard : IdCard
}
Student "1" --o "1" IdCard : carries跳出类图本身看:类图表达"静态结构",序列图 表达"时序交互",流程图 表达"过程判断"——UML 三件套覆盖了设计文档的主要图示需求,选型见 Mermaid。