11

我想画一个序列图,我想展示用户和 UI 之间的交互。作为演员的用户将填充一个文本框,并在 text_change 事件上调用 BL 类的异步方法。在这种情况下,是否可以在图表上显示 text_change 事件?我该如何展示它?

谢谢

4

2 回答 2

15

为了在或多或少复杂且 GUI 丰富的应用程序中表示交互,我也经常发现自己对在序列图中表示 .NET 事件很感兴趣。在我看来,没有真正的描述性方法可以使用标准方法有效地做到这一点。

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

UML 序列图上 .NET 事件的表示

在上图中,Source实例发出一个事件MyEvent,其中包含落在系统接收器上的参数列表。接收者找到收件人 ( Target ) 并调用其相应的方法 ( Target.OnMyEvent() )。为了强调这个调用是事件触发的,我引入了一个称为“事件”的原型。

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

于 2016-11-30T10:56:31.663 回答
3

你想做的事情是可能的,但不寻常。通常,这些交互将由现有系统/平台提供,因此没有必要将其包含在应用程序设计中。

介绍这通常是如何记录的

我可能会使用协作图来做到这一点。

如果您坚持使用序列图,图 2 应该会有所帮助

于 2012-09-05T10:49:59.283 回答