根据UML标准,在使用序列图时,是否严格定义了谁拥有 perform() 此消息中指定的操作?
perform()
Foo与Bar交互,“传递消息”
(图表中有一个拼写错误,它应该说 性能() )
性能()
我想知道哪些可能的组合是有效的(比如在随附的类图中)
A. Foo 有它和 Bar 不能拥有它:
Foo
Bar
B 酒吧 有它和 Foo 不能拥有它:
酒吧
C 也许两者都有:
我在UML规范中找不到具体的定义,也不知道权威资源(Fowler、Jacobson、Booch、Rumbaugh)对此有何看法。
箭头尖端的对象(在本例中为Bar)必须为箭头钝端的对象(在此例中为Foo)提供操作才能调用它。因此,需要选项B。
不过,没有什么能阻止双方提供同样的行动。因此,选项C也是可行的。
请注意,您的序列图中有一个拼写错误。