活动图:决策与合并

活动图:决策与合并

puml.online

简介 / Introduction

活动图(Activity Diagram)用于描述系统的业务流程,核心元素包括决策节点(decision node)和合并节点(merge node)。两者均以菱形表示:决策节点根据条件选择分支,合并节点将多条路径汇合为一。本文用同一个登录流程示例,分别用 PlantUML 和 Mermaid 实现,对比两者的表达方式和语法差异。

PlantUML 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@startuml
skinparam activity {
BackgroundColor #Fog
DiamondBackgroundColor #LightYellow
DiamondBorderColor #Orange
}
|Client|
start
:输入用户名和密码;
:提交登录请求;
if (凭证有效?) then (是)
:显示仪表盘;
stop
else (否)
:显示错误提示;
:返回登录页;
endif
stop
@enduml

PlantUML 的活动图以 if (...) then (...) else (...) endif 语法表达决策节点,合并节点由 endif 隐式表示。|Actor| 泳道语法可以标注执行者,条件分支用 (是) / (否) 标注分支标签。

Mermaid 版

1
2
3
4
5
6
7
8
flowchart TD
A[输入用户名和密码] --> B[提交登录请求]
B --> C{凭证有效?}
C -->|是| D[显示仪表盘]
C -->|否| E[显示错误提示]
E --> F[返回登录页]
D --> G[结束]
F --> G

Mermaid 使用 { } 语法绘制决策节点(菱形),通过边标签 |是| / |否| 指明分支路径。合并节点只需将两条边汇聚到同一节点即可,无需显式声明。Mermaid 不支持泳道语法,但可用 subgraph 分组实现类似效果。

对比 / Side-by-side

特性 PlantUML Mermaid
决策节点语法 if (...) then (...) else (...) endif { } 菱形节点
合并节点 endif 隐式合并 边汇聚到同一目标节点
分支标签 (是) / (否) 写在 then/else 后 `
泳道 |Actor| 原生支持 不支持,用 subgraph 替代
开始/结束 start / stop 无需显式,用普通节点表示

小结 / Wrap-up

决策节点和合并节点是活动图的基本构造。PlantUML 的 if/endif 结构更接近编程语言习惯,适合复杂条件嵌套的场景;Mermaid 的 { } 节点配合边标签更直观,适合快速绘制简洁流程图。两者都能清晰表达条件分支与路径合并,选择时可根据团队工具链和图表复杂度决定。

  • 标题: 活动图:决策与合并
  • 作者: puml.online
  • 创建于 : 2026-09-09 09:00:00
  • 更新于 : 2026-09-29 01:06:38
  • 链接: https://puml.online/blog/activity-diagram-decision-merge/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。