2017-10-16 39 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