设计模式预备知识:时序图

时序图又称UML时序图或者UML序列图,用于描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。

时序图的几大元素

我们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。其中前6种是比较常用和重要的元素,剩余的一种组合片段元素不是很常用,但是比较复杂。组合片段的资料见这篇文章

角色

系统角色可以使人或者其他系统,通常用小人代替

对象

对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

  • 第一种方式包括对象名和类名;
  • 第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
  • 第三种方式只显示对象名不显示类明。
    实例见下图:
    在这里插入图片描述

生命线

时序图中每个对象底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。

控制焦点

控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。

消息

表现代表对象之间发送的信息。消息分为三种类型。

  • 同步消息(Synchronous Message)
    消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线+实心箭头表示。
  • 异步消息(Asynchronous Message)
    消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线+大于号表示。
  • 返回消息(Return Message)
    返回消息表示从过程调用返回。以小于号+虚线表示。
    在这里插入图片描述
    如上图:同步消息对应的命令是return:=message(parameter),也即Target需要把message(parameter)执行的结果赋给return,所以需要等待Target执行结束,故该消息为同步消息。异步消息对应的message(parameter),则只是将命令发送给Target执行。

自关联消息

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。

一个案例

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35531985/article/details/108944679