简介 / Introduction
时序图(Sequence Diagram)和活动图(Activity Diagram)都是交互建模的重要工具,但侧重点不同。时序图强调谁在何时对谁说了什么;活动图强调流程的分支、循环与并行。选对图类型,能让图表一目了然;选错则徒增困惑。
PlantUML 版
时序图示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @startuml title 用户登录时序 actor User participant "前端" as FE participant "后端" as BE database "数据库" as DB
User -> FE : 输入账号密码 FE -> BE : POST /login BE -> DB : 查询用户 DB --> BE : 用户记录 BE --> FE : JWT Token FE --> User : 登录成功 @enduml
|
活动图示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @startuml title 订单处理活动图 start :接收订单; :校验库存; if (库存充足?) then (是) :扣减库存; :生成发货单; else (否) :通知用户缺货; stop endif :发送订单邮件; stop @enduml
|
时序图用 -> / --> 表达消息流向;活动图用 if / fork / kill 控制流程节点。两者在 PlantUML 中有完全独立的语法关键字。
Mermaid 版
时序图示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| sequenceDiagram title 用户登录时序 actor User participant Frontend participant Backend database Database
User->>Frontend: 输入账号密码 Frontend->>Backend: POST /login Backend->>Database: 查询用户 Database-->>Backend: 用户记录 Backend-->>Frontend: JWT Token Frontend-->>User: 登录成功
|
活动图示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| activity title 订单处理活动图 :接收订单; :校验库存; if (库存充足?) then (是) :扣减库存; :生成发货单; else (否) :通知用户缺货; stop endif :发送订单邮件; stop
|
Mermaid 的 sequenceDiagram 与 activity 同样使用不同语法块,主题关键字 title 均可省略。
对比 / Side-by-side
| 维度 |
时序图 |
活动图 |
| 核心描述 |
对象间消息的时间顺序 |
流程的分支与并行 |
| 关键字(PlantUML) |
->、`–>`` |
if、fork、kill、start/stop |
| 关键字(Mermaid) |
->>、-->> |
if / else、parallel、stop |
| 适用场景 |
API 调用、协议交互、对象协作 |
业务流程、算法步骤、决策分支 |
| 循环表示 |
loop(PlantUML)/ loop(Mermaid) |
while / repeat |
小结 / Wrap-up
时序图适合描述参与者之间的消息交换(who calls whom, when),活动图适合描述流程逻辑(分支、循环、并行)。实际项目中,两者常常互补:活动图展示整体业务流,时序图解释关键节点的接口调用。选择取决于你想表达的核心语义,而非图表的”复杂度”。