Uml 在序列图中引用给定类的实例

Uml 在序列图中引用给定类的实例,uml,sequence-diagram,Uml,Sequence Diagram,我必须对一个系统建模,其中类Person的对象将调用类Book上的静态方法getBook(…):Book,该方法将返回特定书籍的实例 如何引用操作获得的图书实例? 到目前为止,我能想到两种方法,这两种方法我都没有见过/使用过,这就是为什么我在寻找正确的方法 第一种方法是直接对获取的book实例调用方法,例如,如果getBook(…):book返回的引用名为matchingBook,我将使用matchingBook.doSomething(…),就像使用局部变量一样 第二种方法,我在序列图中找到了

我必须对一个系统建模,其中类
Person
的对象将调用类
Book
上的静态方法
getBook(…):Book
,该方法将返回特定书籍的实例

如何引用操作获得的图书实例?

到目前为止,我能想到两种方法,这两种方法我都没有见过/使用过,这就是为什么我在寻找正确的方法

第一种方法是直接对获取的book实例调用方法,例如,如果
getBook(…):book
返回的引用名为
matchingBook
,我将使用
matchingBook.doSomething(…)
,就像使用局部变量一样

第二种方法,我在序列图中找到了更多,就是让操作返回的book实例以其自身的生命线出现,例如book类旁边,并使用标记为
doSomething(…)
的箭头引用它


但是,对于第二种方法,这个对象实际上是操作返回的对象并不明显。

第二种方法是正确的。无论何时,只要对第一次操作返回的对象调用操作,您都不能比第一次调用的结果与生命线之间的名称匹配做得更好


不管怎样,我真的不明白你对第一种方法的期望是什么:你会把
火柴本放在哪里。doSomething(…)
?在指向哪条生命线的箭头上?

第二种方法是正确的。要显示您正指向返回的对象(
matchingBook
),可以将变量名添加到生命线的标题中,如下所示:


这是有道理的。我在想,只是按原样调用方法,而不指向任何生命线。正如您所猜测的,这是不可能的,因为方法调用是通过箭头进行的,箭头显然有一条目标生命线。