通信图(communication diagrams),交互图的一种,强调交互的各种参与者之间的数据链接。即 对象和对象之间的调用关系。

组成元素

对象

图中矩形元素即对象,其中冒号前面部分为对象名,后面部分为类名。即表示一个类的实例!当消息是给这个对象发的时,接收方用重叠的矩形表示。参考后面多态和广播的图例。

链接

链接用来在通信图中关联对象,目的是让消息在不同系统对象之间传递。可以理解为链接是公路,消息是车。用两个对象之间的单一线条表示。

消息

是通信图中对象与对象之间通信的方式。消息具有如下类型与符号表示:

消息类型 表示 描述
简单消息 image.png
同步消息 image.png
异步消息 image.png
反身消息 image.png

附加条件

附加条件 表示 描述
监护条件 表示只有当满足条件时才进行通信。
广播消息 *消息<>
多次发送 [1…n]消息
多态 *消息

Why

vs 时序图

时序图和通信图都是交互图,只不过他们的关注点有所差别。时序图着重于时间顺序,而通信图则关注的是对象之间的组织关系,通信图中的时间顺序可以从消息序号中获得。在语义上这两个图是等价的可以互相转换而不会丢失信息。

vs 类图

通信图是将类实例化之后的调用关系。这里可以用中国象棋来理解一下,类图就好比棋子,而通信图则是具体的某一局对弈。