UML序列图中的自调用循环

3
这是一个关于 UML 的基础问题。我有一个调用自身的函数,它启动一个循环来创建一些对象。我想知道这个调用自身的箭头应该指向循环内部还是外部。我在这里展示了不同之处:

Sequence Diagram


2
你的自调用有问题。它无法打开第二层。 - qwerty_so
3个回答

4
我不知道你的工具是什么,但是自调用应该像这样:

enter image description here

你可以看到循环在自调用内部。

我正在使用MagicDraw。你截图的工具是什么? - Viktor
在你的例子中,它看起来像是一个递归消息,与我的不同之处在于它是一个自我调用。这两者之间有什么区别? - Viktor
我在这里找到了一个不错的回答:[链接]https://dev59.com/pmgu5IYBdhLWcg3wDSwG - Viktor
我想你脑海中应该有一个递归的想法:调用一个例程,它执行一些循环然后返回。 - qwerty_so

1
自调用触发循环应该在循环块之外结束。
每次执行循环时,必须执行整个块。例如,如果您的自调用在循环块内结束,则在每次循环迭代中,第一个事件应该是接收自调用。这绝对不是您想要做的,因为此自调用应仅被接收一次(然后开始循环)。因此,它肯定必须在循环块之外结束。

0

由于它不在循环中,最好将其放在图表外部。从逻辑和视觉角度来看,这样看起来更好。最好使用垂直线上的块来显示,例如,两个动作将在同一事务中进行,或者使用2个视图,例如一个序列图和一个活动图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接