目录
[1. 简介](#1. 简介)
[4. 消息的延迟和消息间空间](#4. 消息的延迟和消息间空间)
[8. 创建参与者,进入和发出消息](#8. 创建参与者,进入和发出消息)
1. 简介
时序图是一种UML交互图,它通过描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。
- 对象
- 消息
- 消息传递方向
- 生命线、控制焦点

2.PlantUML 简单语法及示例
@startuml
:::
@enduml
- ->绘制参与者之间传递的消息,且不必显式地声明参与者。
- -->绘制一个虚线箭头。
- <-和<--同样可以达到绘图目的
- 箭头的指向就代表消息传递的方向,可读性很好。
- '单行注释 /' '/多行注释
注:没有显示申明模块的类型,默认是participant,并且随着代码的书写顺序进行从左向右的展示。
3. 参与者、消息、箭头的设置
- 更改参与者的顺序:采用关键字order,order后可以跟负数。
- 参与者给自己发消息:用\n表示换行。


参与者:participant、actor、 boundary、control、entity、database

- 参与者中使用非字母符号:要加双引号
- 重命名参与者:使用关键字as
- 参与者图标的背景色:在参与者名称之后加#COLOR ,可以是RGB值,可以是颜色名

- 消息自动编号:
- autonumber 从 1 开始对消息自动编号
- autonumber START 从 START 开始对消息自动编号
- autonumber START INCREMENT 从 START 开始,按 增量 INCREMENT 对消息自动编号
- 编号格式:在自动编号语句之后的双引号内指定格式
- 由 Java 的 DecimalFormat 类实现:主要靠 # 和 0 两种占位符号来指定数字长度
- 可以用 HTML 标签来制定格式, 如<font color=red>
- 暂停、继续使用自动编号
- autonumber stop
- autonumber resume increment format
PlantUML 画时序图- 常用的HTML 标签
-
- <b> 加粗文本
- <u> 或 <u:#AAAAAA> 或 <u:colorName> 用来加下划线
- <i> 斜体
- <s> 或 <s:#AAAAAA> 或 <s:colorName> 用来加删除线
- <w> 或 <w:#AAAAAA> 或 <w:colorName> 用来加波浪线
- <color:#AAAAAA> 或 <color:colorName> 用来设置文本颜色
- <back:#AAAAAA> 或 <back:colorName> 用来设置背景色
- <size:nn> 设置字体大小
- <img src="file"> 或 <img:file> 用来添加图片,图片文件必须 是可以访问得到才行。
- <img src="http://url"> 或 <img:http://url> 用来添加一个互联网图片

- 表示一条丢失的消息:末尾加 x
- 让箭头只有上半部分或者下半部分:
将 < 和 > 替换成 \ 或者 /
- 细箭头:将箭头标记写两次 (如 >> 或 //)
- 虚线箭头:用 -- 替代 -
- 箭头末尾加圈:->o
- 双向箭头:<->

4. 消息的延迟和消息间空间
- 消息延迟
- 用... 来表示延迟
- 并且还可以给延迟添加注释,如...5 minutes latter...
- 空间
- 用|||增加空间
- 指定增加像素的数量,||100||

5. 组合消息
组合消息
-
- alt/else------多消息间互斥的选择
- opt------包含一个可能发生或不发生的序列
- loop------循环
- par------并行
- break------中断
- critical------关键
- group, 这个关键词后面的文字会作为组名显示在图形上
- end用来结束分组。

6. 消息注释
- 简单注释
- 单行注释:在消息后加note left:, note right:
- 多行注释:note left(right)
......
end note
- 在节点的相对位置添加注释
- note left(right) of :
- note over a,b,c....:
- 注释的个性设置
- 在note语句后加#COLOR设置颜色。


7. 生命线
- 生命线的激活和撤销
- activate
- deactivate
- 生命线的终结
- destroy ------表示一个参与者的生命线的终结
- 生命线的嵌套
还可以给生命线添加颜色
返回消息,return

8. 创建参与者,进入和发出消息

9. 其他样式
-
- header,title,footer
- 分隔符
- 用 == 关键词将图表分割多个步骤
-
- 其他:newpage

-
- 包裹参与者
*- 使用box和end box画盒子将子将参与者包裹起来
- 还可以在 box 关键字之后添加标题或者背景颜色
- 移除脚注------hide footbox
- 填充区设置
*- skinparam ParticipantPadding 30
- skinparam BoxPadding 100
- 包裹参与者
-
- skinparam
- 可以使用HTML标签来格式化文本