概述
序列图(sequence diagram),又称时序图。
1. 通过描述对象之间发送消息的时间顺序
2. 显示多个对象之间的动态协作
元素
角色Actor
系统角色。
对象Object
位于序列图顶部,代表参与交互行为的对象。常见的命名方式:
1. 类名+对象名
2. 类名,无对象名(匿名对象)
3. 对象名,无类名
对象(object)是对客观事物的抽象,类(class)是对对象的抽象。
- 一个对象可以通过发送消息来创建另一个对象
- 一个对象可以被删除/自我删除,此时以”×”表示
生命线Lifeline
- 序列图中的对象在一段时间内的存在
- 以从对象底部中心延伸出的竖直虚线表示
- 对象之间的消息传递发生于生命线之间
激活期Activation
- 序列图中的对象执行一项操作的时期
- 或执行其自身的代码
- 或等待另一个对象的返回信息
- 以生命线上相应时间段内窄矩形表示
消息Message
- 用于对对象间通信内容进行建模的类
- 以垂直于生命线的单方向箭头表示
- 消息包含内容:
- 消息名称
- 消息参数
- 可能带有条件表达式,以确定是否发送/发送分支
Markdown序列图语法
封装代码块
使用三个`
加上sequence
封装开头
使用三个`
封装结尾
标题
Title: [标题]
声明对象
- 一般无需特别声明,除非需要定制对象出现顺序,如此则依次声明对象:
participant [对象名]
- 使用下列语法可为对象编写注释:
Note left/right to [对象名]: [注释]
Note over [对象名]: [注释]
Note over [多个对象,之间以,隔开]: [注释]
participant A
participant B
Note left of A: 这是对A的注释
Note right of B: 这是对B的注释
Note over A: 这是A上的注释
Note over A,B: 这是A和B共有的注释
实现效果如下:
编写消息
- 基本语法:
[发送对象][箭头符号][接收对象]: [消息]
- 箭头符号
- -> 实线黑色三角箭头
- –> 虚线黑色三角箭头
- ->> 实线开放箭头
- –>> 虚线开放箭头
- 消息显示顺序与代码中消息编写顺序一致
A->B: ->
B-->C: -->
B->>A: ->>
C-->>A: -->>
实现效果如下: