11

我刚开始使用 Dia。我正在尝试构建一个序列图。我想代表自我调用。在 Dia 怎么做到这一点?我想不通。

谢谢。

4

2 回答 2

17

首先放置一个UML Message 对象,它的基础连接到您的生命线。

然后,双击箭头(或右键单击,属性),并将消息类型下拉字段更改为递归,您将得到如下内容:

在此处输入图像描述

现在您可以拖动绿色锚点,使消息箭头看起来像您想要的那样。(注意事项:似乎对于递归消息对象,您只能通过在绿色锚点所在的位置单击该对象来选择该对象。我说“将是”,因为您当然看不到未选择对象时的绿色锚点。)

如果您愿意,您可以创建另一个 UML 生命线对象,并将其与现有生命线重叠,如下所示:

额外的生命线示例

然而,这并不理想,因为这第二条生命线实际上没有任何东西。Recursive Message 对象不允许您选择在何处附加它的箭头,因为它会自动附加到它起源的生命线。而且因为第二条生命线没有连接任何东西,如果你在它周围移动物体,它就会被抛在后面。但是,它看起来确实很漂亮,如果这就是你所追求的。:)

于 2012-08-08T14:58:34.180 回答
0

UML 中的自调用(或任何其他关联)最好使用标准关联表示法而不是消息一表示。在 DIA 中,从左侧的工具箱中插入关联符号并将其添加到您的画布中。然后为了让它递归地连接一个类(到自己)双击它并单击选择“自动路由”作为否。这将使您能够自己塑造路线,并且不会将您限制在将类链接到自身时绘制的自动直线。

你最终会得到这样的东西(在这个例子中,它是链表中节点的表示): 在此处输入图像描述

于 2013-01-10T11:29:54.780 回答