交互图是uml中描述系统中的对象如何进行交互动作的 。
废话不多说,还是来张图:
概念
交互图,主要描述的是系统中的一组对象的消息的传递的,为对象间的交互定义了一个可视的表示方法。
构成
交互图并不是一个图,而是一些图的统称,就像我们在类图里说的超类一样。顺序图、通信图、定时图等都可以说是交互图。就像男人和女人都可以称为人类一样。
其中,应用的最多的就是顺序图和通信图(也有称为合作图、协作图)。有趣的是,这两种图是可以相互转换的,而且转换时不会丢失信息。而定时图和交互概述图是两种变体。
顺序图
图片引用自卓家进师哥的博客:http://blog.csdn.net/zhuojiajin/article/details/27358017?reload
顺序图强调的是消息的时间顺序,把参与交互的对象写在最上方如上图的刘备,把发起交互的写在最左边(一般情况下)依次放在右边,这样控制流随着时间推移就可以清晰的展示。
这里的向下的虚线就是对象的生命线,当关羽败走麦城被孙权处死后,关羽的这条虚线就会结束。这就是对象的销毁。
在生命线上的长条矩形,就是控制焦点,表示对象执行一个动作所经历的时间。
一个箭头,加一条线,再在线上写上内容就是消息的传递。消息主要有五种类型:调用、返回、发送、创建和销毁。下图是这几种消息的表示方式。
在三国的图中,每个消息前面都有一个数字,这就是消息的序列,消息就是按照序列进行的传递。
通信图
图片引用自卓家进师哥的博客:http://blog.csdn.net/zhuojiajin/article/details/27358017?reload
通信图的重点是说的联系,在这里,对象还是那个对象,消息也还是那个消息,不过是把原来的故事换了一种方式来提现罢了。顺序图主要说的是打仗的步骤,而通信图却是侧重于打仗时各个对象的关系。
链:如果非要说多了什么的话,那就是相关连的对象之间多了一条线。表示消息的路径。
通常情况下,我们都是使用顺序图来表示我们的系统的交互。这样更加的清晰。
时序图:给uml的顺序图的控制焦点加上时间限制就是时序图。
交互概况图:交互的顺序图和活动图的结合就是交互概况图。
绘制交互图
交互图通常是在分析模型或设计模型中提现,分析模型侧重于分析类的职责分配和交互流程,而设计模型中的交互图侧重于设计类的引入和实际方法的调用与流程控制。
交互图的设计思路是:先确定对象,然后确定消息的交互流程,然后完善交互图。
交互图的应用
交互图在分体阶段主要用于确定业务的逻辑流程。交互模型后,可以引入基础的类,然后优化设计。以便于提高代码的质量。在设计极端的交互图的作用主要是精化交互模型,然后使其与实际代码更加吻合。
交互图与活动图
交互图与活动图都是描述系统动态的关系。这两种模型的区别是:交互图强调的是对象的控制流,而对象图强调的是活动流程。比如,张三让他儿子去买酒。交互图强调的是:买酒的信息由张三发出,由他儿子接受;而活动图强调的是:张三先找到他儿子,然后他儿子去买酒。