【发布时间】:2012-09-01 13:19:19
【问题描述】:
我想画一个时序图,我想展示用户和 UI 之间的交互。作为演员的用户将填充一个文本框,并在 text_change 事件上调用 BL 类的异步方法。在这种情况下,是否可以在图表上显示 text_change 事件?我该如何展示它?
谢谢
【问题讨论】:
我想画一个时序图,我想展示用户和 UI 之间的交互。作为演员的用户将填充一个文本框,并在 text_change 事件上调用 BL 类的异步方法。在这种情况下,是否可以在图表上显示 text_change 事件?我该如何展示它?
谢谢
【问题讨论】:
为了在或多或少复杂且 GUI 丰富的应用程序中表示交互,我也经常发现自己对在序列图中表示 .NET 事件很感兴趣。在我看来,没有真正的描述性方法可以使用标准方法有效地做到这一点。
一种形式上合理的方式可能如下:引发事件基本上只是调用目标实例中定义的函数,唯一的区别是您不是直接调用它,而是通过系统事件消息循环调用它。因此,在幕后,引发事件与调用系统本身中的某些 HandleMessage("MyEvent", params object[] args) 函数相同,参数是事件名称和列表的可选参数。我不知道确切的名称和签名是什么,但这并不重要。
在上图中,Source 实例发出一个事件 MyEvent,其中包含落在系统接收器上的参数列表。接收者找到收件人(Target)并调用其对应的方法(Target.OnMyEvent())。为了强调这个调用是事件触发的,我引入了一个称为“Event”的原型。
这个方案可能看起来有些笨拙,但对我来说,它涵盖了这种情况。
【讨论】:
你想做的事情是可能的,但不寻常。通常这些交互将由现有系统/平台提供,因此没有必要将其包含在应用程序设计中。
Introduces how this would typically be documented
我可能会使用collaboration digram 来做到这一点。
【讨论】: