2017-10-16 77 views
1
A::foo() { 
    if (B::bar()) 
     doSomething(); 
} 

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

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

所以,我可以先画消息,然后用[x] guard的可选框。但这不完全相同。还有其他方法吗?

回答

1

你不应该陷入陷阱,以图形化编程。 SD不是为了描绘复杂的算法(它会失败,因为在做了一些嵌套的嵌套if之后可以轻松猜出)。

如果x -assignment是一些更复杂的结构,你可以使用它的片段,因为它是和最终用一记告诉如何以及在何处x已设置装饰它的一部分。如果只是上面的内容,您可以简单地在片段中使用x的来源(即B::bar())。

+0

如果我使用后者,我还应该绘制方法调用消息吗? – klenium

+0

这可能不需要,因为你在警卫中使用的签名已经不同了。但是,如果您想指出由于某种原因将分配置于前面,尽管该消息本身不会告诉结果将在哪里(即转换为“x”)。 –

+0

我加了一个,我认为“不是为了描绘复杂的算法”是一个真正的好方法。 – granier