UML 中的信号操作和异步操作有什么区别?



制作序列图我的工具允许通信是同步操作,异步操作,和信号。

后两者在程序流方面有什么区别?

信号 用于异步事件驱动的通信。这些信号是分类器,描述了它们出现的属性。类本身,并在接收部分中指出它们能够处理哪些信号,然后在交互图中您可以使用这些信号。

在序列图中,两条生命线之间的通信是使用Messages实现的:

消息的签名指的是操作或信号。Message的名称必须与被引用的Operation或Signal的名称相同。

序列图中操作和信号的图形表示法相同;只是信号必须总是异步的。好消息是,您可以从一个开始,然后决定切换到另一个,而无需从根本上改变您的序列图。

没有使用一个或另一个的规则。你可以用其中一个或另一个来模拟非常相似的设计。通常,您可能更喜欢信号而不是异步操作:

  • 如果你正在设计一个事件驱动的系统,
  • 如果你正在设计一个分布式系统,有许多中介传递你的消息
  • 如果消息对发送方有意义,而不管接收方是谁。这种情况的一个症状是,潜在的不相关类(具有不同的操作)可能对接收和处理此类消息感兴趣。
  • 如果消息的内容是复杂的:而不是一个有许多参数的操作,而不是一个使用类参数的操作,类只是为了简化调用参数而创建的,信号可以允许对消息的内容建模。

最新更新