组成UML(统一建模语言)的许多元素都可以精确匹配到Java编程语言。因此,通过看一个模拟Java事件处理机制的UML例子,我可以演示类图和序列图之间是如何互为补充的。当开发Java应用程序时,采用类似于本例的模式去处理应用中的事件是很常见的。
在图A中,EventExample对象发送一个消息到TimeEventSource对象,这个消息致使addTimeChangeListener()方法被触发。在对象之间传递的消息的顺序通常是从上至下,而且一般是从左至右的。请留意图A中的注释,以加深理解。
Figure A
让我们大致深入看一下这个序列图。以下的数字对应图中的数字:
你将注意到我在TimeChangeListener接口上附加了一个note(注释,说明),以便于说明我将实际创建一个实现了这一个接口的类。这个note允许在图示中展示很好的灵活性,因为不管我用什么类代替TimeChangeListener整个消息序列都是正确运转的。而且,我可能想用一个note来说明,当TimeEventSource对象通知其监听器时间的变化,它可以同志多个监听器,从而形成一个有效的循环。
关键之处是需要解释这个图示并用来构建代码的开发者必须懂得这些注释中包含的信息,以便于更加高效的操作。注释(notes)是一个很重要的方法,它帮助你懂得与这个事件序列有关的更详尽的细节信息。注释应当出现在大多数图示中,你可能经常对一个单个的类图配备多个序列图,因为很多类的组合可能以多种不同的方式交互。序列图的主要作用在于为一种交互方式建模。