如何在序列图中展示事件

16

我想绘制一个序列图,展示用户与UI之间的交互。作为参与者的用户将填写文本框,在文本更改事件(text_change event)触发后,将调用BL类的异步方法。在这种情况下,是否可以在序列图中显示text_change事件?如果可以,应该如何展示?

谢谢。

2个回答

19

为了在更复杂和GUI丰富的应用程序中表示交互,我也经常对.NET事件进行序列图表示。在我看来,使用标准手段没有真正明确的有效方法。

一个正式可证明的方法可能是:引发事件基本上只是调用目标实例中定义的函数,唯一的区别是您不是直接调用它,而是通过系统事件消息循环进行调用。因此,在幕后,引发事件与在系统本身中调用一些HandleMessage("MyEvent", params object[] args)函数相同,参数是事件的名称和可选参数列表。我不知道确切的名称和签名是什么,但这并不重要。

A representation of .NET event on an UML sequence diagram

在上图中,一个实例发出一个事件MyEvent,其中包含一系列参数,最终传递到系统接收器。接收器找到收件人(目标),并调用其相应的方法(Target.OnMyEvent())。为了强调这个调用是由事件触发的,我引入了一个名为“Event”的构造类型。

这个方案可能看起来有些笨拙,但对我来说,它涵盖了这种情况。


3

1
你能提供一些证明它非常不寻常的源材料吗? - Zimano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接