在UML序列图中如何展示实例化?

20

我该如何展示WebServer实例化一个View并获取流程控制权?也许我没有使用正确类型的图表?

alt text

3个回答

19
Ruben的回答中的图表是正确的,但普遍的UML回答缺少了一些内容。当“创建”线(在本例中为虚线)连接到所创建生命线的框/标签/顶部时,它会创建另一个生命线。例如:WebServer 在其操作中创建了一个 View,而由 View 执行的操作则创建了 Widget。
-----
| a |
-----
  |
  []---->-----
  []     | b |
  |      -----
  |        |

这里还有几个图表,点击此处查看。

UML 2.2规范(超结构)在第474页有一个示例,图14.11是它们的正式语法/符号参考。在符号说明的第495页中,它指出:"对象创建消息具有带有开放箭头的虚线." 在UML中进一步定义了消息类型作为枚举称为MessageSort。其中一个值是:

"• asynchSignal - 消息由异步发送操作生成createMessage - 指定创建另一个生命线对象的消息"


+1 感谢提供链接,Ambler 不错吧?不幸的是,我不理解最后两段,但你已经回答了问题!谢谢。 - LeWoody

10

出于兴趣,您如何展示同时存在多个相同对象的情况?例如,创建了对象A的实例A1并存在一段时间,在其存在期间创建了另一个实例A2,您是否只是使用另一个激活条并使它们重叠? - IronHide
1
为什么Order在创建前就存在了呢?看起来是错误的。 - Zelphir Kaltstahl

3

是的,你可以使用create消息来实现。但有时这取决于你所使用的工具。无论如何,你只需要一个箭头,指向正在创建的对象并显示文本create


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