时序图
注意时序图的关键是整体按时间流程从上到下依次递减,观看的时候也要按整体递减的顺序一行一行看,而不是专注某一列递减来看
而且这个时序图的 复杂程度完全取决于你想展示多少细节,和其他UML图一个道理
[ 时序图主要分为以下这七个因素 ]
- 角色 —— 时序图开始的主角,可以是电脑、主机、小人等任意图标,一般以小人做为角色图标。
- 对象 —— 对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:
- 对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;
- 只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。
- 只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:。
- 生命线 —— 就是每个对象or角色下面那条垂直的虚线。
- 控制焦点(也叫激活框) —— 代表一段服务的运行时长。
- 消息 —— 有的人没有分那么细,就是实现就代表请求,虚线就代表返回结果,箭头没有特殊含义。但是也有人分的很细,这时候箭头就代表同步异步的意思,比如细分的话意思如下:
- 实线+实心箭头: 主动类型的同步调用或者请求
- 实现+大于号箭头:主动类型的异步调用或者请求
- 虚线+实心箭头: 收到请求后同步的返回过程
- 虚线+小于号箭头:收到请求后异步的返回过程
- 自关联消息 ——表示对自身内部的一个调用。以一个半闭合的长方形+下方实心剪头表示。
- 组合片段 —— 标示循环、判断、中断…的框框 专业的组合片段共有13种,名称及含义如下:
组合名称 | 组合含义 |
ref | 引用其他地方定义的组合片段 |
alt | 在一组行为中根据特定的条件选择某个交互 |
opt | 表示一个可选的行为 |
break | 提供了和编程语言中的break类拟的机制 |
par | 支持交互片段的并发执行 |
seq | 强迫交互按照特定的顺序执行 |
strict | 明确定义了一组交互片段的执行顺序 |
neg | 用来标志不应该发生的交互 |
region | 标志在组合片段中先于其他交互片断发生的交互 |
ignore | 明确定义了交互片段不应该响应的消息 |
consider | 明确标志了应该被处理的消息 |
assert | 标志了在交互片段中作为事件唯一的合法继续者的操作数 |
loop | 说明交互片段会被重复执行 |
[ 普通时序图展示 ]
[ 稍复杂点的时序图展示 ]