活动图:泳道(Swimlane)

活动图:泳道(Swimlane)

puml.online

简介 / Introduction

活动图(Activity Diagram)用于描述业务流程中的动作流转。泳道(Swimlane)将动作分组到不同的责任人或系统分区,使流程一目了然。PlantUML 原生支持泳道语法;Mermaid 通过 flowchart 子图近似实现。

PlantUML 版

PlantUML 用 |分区名| 语法声明泳道,每个分区内的动作属于该分区。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@startuml
|订单处理|
:接收客户订单;
|库存管理|
:检查库存;
|发货管理|
:打包商品;
|订单处理|
:发送确认邮件;
|库存管理|
if (库存充足?) then (是)
:更新库存记录;
else (否)
:生成补货提醒;
endif
|发货管理|
:安排快递;
@enduml

PlantUML 泳道自动在垂直方向排列,箭头连接各分区的动作节点。

Mermaid 版

Mermaid flowchart 不存在独立泳道语法,但可用 subgraph 配合 LR 或 TD 方向近似分区效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
flowchart LR
subgraph 订单处理
A1[接收客户订单] --> A2[发送确认邮件]
end
subgraph 库存管理
B1[检查库存] --> B2{库存充足?}
B2 -->|是| B3[更新库存记录]
B2 -->|否| B4[生成补货提醒]
end
subgraph 发货管理
C1[打包商品] --> C2[安排快递]
end
A1 --> B1
B3 --> C1
B4 --> C1
A2 -->|通知| A1

注意 Mermaid 子图之间无法自动对齐,需要手动安排节点顺序模拟泳道行为。

对比 / Side-by-side

特性 PlantUML Mermaid
泳道语法 |分区名| 原生支持 无原生泳道,用 subgraph 近似
分区排列 自动垂直对齐 需手动控制节点顺序
条件分支 if/else/endif B2{} 判断节点
并行路径 fork/join 不支持
图表类型 activity diagram flowchart

小结 / Wrap-up

PlantUML 的 |泳道| 语法是活动图泳道的标准实现,适合正式业务流程文档。Mermaid 以 flowchart + subgraph 模拟,胜在上手快、渲染集成方便,但分区对齐需额外注意。如需精确泳道布局,推荐 PlantUML;如已使用 Mermaid 体系,可接受 subgraph 的折中方案。

  • 标题: 活动图:泳道(Swimlane)
  • 作者: puml.online
  • 创建于 : 2026-09-08 09:00:00
  • 更新于 : 2026-09-29 01:06:38
  • 链接: https://puml.online/blog/activity-diagram-swimlanes/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。