选择框守卫中的方法调用

Method call in opt box's guard

A::foo() {
    if (B::bar())
        doSomething();
}

如何在 UML 序列图中显示 B::bar() 方法调用?我知道这是可能的:

A::foo() {
    x = B::bar();
    if (x)
        doSomething();
}

这样我就可以先绘制消息,然后再绘制带有 [x] 守卫的选择框。但这并不完全相同。还有其他方法吗?

您不应该陷入图形化编程的陷阱。 SD 并不意味着描绘复杂的算法(它会失败,因为在使用片段进行一些嵌套的 if 之后你很容易猜到)。

如果 x-assignment 是一些更复杂结构的一部分,您可以在片段中按原样使用它,并最终用一个注释来装饰它,告诉它 x 是如何以及在哪里出现的放。如果这正是您上面所拥有的,您可以简单地使用片段中 x 的来源(即 B::bar())。