如何在UML类图中表示“返回”的关系?

3
我希望用UML(统一建模语言)来表达class Foo返回class Bar的关系。在Foo的一个方法中创建了Bar对象并将其作为结果返回。
我不确定该使用依赖还是关联关系。你有什么建议吗? 编辑 我应该澄清一下,我正在制作的UML图没有包含任何类属性或操作。它只是一个概述,显示类之间的关系。属性和操作的描述已经通过Doxygen从源代码生成。 编辑2 我还应该进一步澄清,我想从一个类图中展示这种关系。对于一开始没有表述清楚,我深感抱歉。 编辑3 经过进一步挖掘和查看示例,我意识到更重要的是记录Foo 创建 Bar。Foo的一个方法返回Bar是一个可以省略在我的类图中的实现细节。所以现在,我的问题是:在类图中展示“Foo创建Bar”关系的最佳方式是什么?

没有类关系可以表达运行时行为! - qwerty_so
我能不能只是在Foo和Bar之间使用一个关联,并将其命名为“returns”? - Emile Cormier
2个回答

4

正如我在第三次编辑中提到的那样,我意识到记录Foo创建Bar的关系更为重要。在我的情况下,Foo的一些方法返回Bar的事实是最好留给Doxygen文档来解释的细节。

正如其他人所提到的,Foo返回Bar的事实也可以在Foo类的操作区或行为图中表示。但在我的问题中,我限制了自己只使用类图,而不列出属性和操作。

我进行了一些调查,并发现UML有一个预定义的用法依赖性的<>构造型,如此处所示。

+------------+               +------------+
|            |  <<create>>   |            |
| Datasource +-- -- -- -- -->+ Connection |
|            |               |            |
+------------+               +------------+
<<create>>这个模型元素在UML 2.4.1超结构规范的第704页中描述为:一个使用依赖关系,表示客户分类器创建供应商分类器的实例。 使用依赖关系是指一个元素需要另一个元素(或一组元素)才能完全实现或运行(见UML 2.4.1超结构规范第139页)。
此外,使用依赖关系并没有指定客户端如何使用供应商,除了事实上客户端的定义或实现中使用了供应商。
UML规范还有预定义的<<instantiate>>模型元素,定义为:分类器之间的使用依赖关系,表示客户端上的操作创建供应商的实例。 <<create>><<instantiate>>这两个模型元素似乎存在一些重叠。

1

方法的返回类型在类中的方法定义中表达。大多数工具可以打开/关闭属性和方法的可见性。如果类Foo创建或操作类Bar,则可以使用从Foo到Bar的方向关联。这听起来不像是一种依赖关系。


如果类Foo创建或操作类Bar... 谢谢,这个短语帮助我更加关注创造方面,最终我找到了<<create>>为此目的而设计的构造型。 <<create>>与依赖关系一起使用,而不是与联想关系一起使用。 - Emile Cormier

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