时序图
时序图(Sequence Diagram)用于描述对象在一个业务场景中的交互顺序。学习时序图的关键是看懂参与者、消息方向以及消息发生的先后关系。
时序图基础元素
参与者与生命线
参与者可以是用户、系统组件或第三方服务。生命线表示该参与者在交互过程中的存在周期,时间从上往下流动。
TIP
- 参与者是图最上方的角色/对象名称(如
用户、Web 前端)。 - 生命线是从参与者向下延伸的竖直虚线,表示该对象在交互期间的存在时间。
激活条
激活条表示对象正在处理某个调用,通常从收到请求开始,到返回结果结束。
TIP
- 激活条是生命线上的细长矩形,表示对象正在执行某段逻辑。
activate/deactivate分别表示激活条开始和结束。
常见消息符号
组合片段
时序图通过组合片段表达分支、循环与并发逻辑:
| 片段 | 作用 | 典型场景 |
|---|---|---|
alt | 条件分支(二选一或多选一) | 登录成功/失败 |
opt | 可选执行(单分支) | 有优惠券才计算折扣 |
loop | 循环执行 | 遍历订单项 |
par | 并行执行 | 并行查询多个下游服务 |
break | 中断当前交互 | 参数校验失败直接返回 |
critical | 临界区 | 保证一段操作串行执行 |
ref | 引用子时序 | 复用公共流程 |
alt
说明:alt 表示互斥分支。图中根据凭证是否有效,流程只会进入“登录成功”或“登录失败”其中一个分支。
opt
说明:opt 表示可选分支。只有“用户有优惠券”条件满足时,才会触发优惠计算逻辑。
loop
说明:loop 表示重复执行。图中会按“每个订单项”循环调用库存校验,直到全部校验完成。
par
说明:par 表示并行片段。图中价格、优惠、库存三个查询可以并发进行,最终汇总结果返回给用户。
break
说明:break 表示中断当前交互。一旦参数非法,流程立即返回错误并终止后续主流程。
critical
说明:critical 表示临界区。图中“扣减库存”这段逻辑需要串行执行,避免并发下出现超卖或库存不一致。
ref
子时序图(被 ref 引用):
说明:ref 用于引用子时序图。图中将“支付授权流程”抽成可复用片段,主图只保留调用关系。
