首页 > 解决方案 > 时序图中的方法

问题描述

我有一个面试问题,然后我试图在互联网上找到它的问题,但我找不到它。 在此处输入图像描述

我回答了它,但我仍然对我的回答感到困惑。因为我认为Post()也是Invoice课堂的一部分。

标签: classumlsequence-diagram

解决方案


不。该消息显示的是什么而不是谁/什么Publish()的操作也是,并且InvoicePost()其中之一GeneralLedger(从 调用Invoice)。Validate()也是一个操作Invoice。这只是一个自我调用。


注意我在上面使用了口语化的描述。首先,我重复@Christope的评论,即问题本身存在缺陷。

  • method是错误的术语。它是常用的(主要在 MS 世界中),但这里应该阅读的是操作(UML 2.5 p. 15:类拥有的操作可能具有定义其详细行为的相关方法)
  • 在生命线的顶部,它仅表示对象,而不是派生它们的类。可以认为类名是相同的,但要正确,它必须是:<class>or <objName>:<class>。没有冒号,它只是对象名称。
  • 返回箭头有一个错误的箭头。它需要是一个开放的,而不是一个充满的。箭头渲染的语义在 UML 中至关重要。
  • 消息(上面的实线)在 UML 2.5 (p.574) 中定义为消息显示为从发送者 MessageEnd 到接收者 MessageEnd 的一条线。当从发送事件遍历到接收事件时,该行必须使得每个行片段都是水平的或向下的。发送和接收事件可能都在同一条生命线上。线条或箭头的形式反映了消息的属性...
  • 因此,消息上方的文本是消息签名,对应于指向的对象中的操作(更多信息请参见 UML 规范)。

推荐阅读