我想(在视觉上)用UML表达class Foo
返回class Bar
。 Bar
对象是使用Foo
方法之一创建的,并作为结果返回。
我不知道是否要使用依赖关系或关联关系。有什么建议吗?
修改
我应该澄清一下,我正在处理的UML图不包含任何类属性或操作。它只是作为概述显示类之间的关系。已经从源代码生成了属性和操作的描述(通过Doxygen)。
编辑2
我应该进一步澄清,我想从类图中显示这种关系。我为从一开始就不清楚而道歉。
编辑3
进一步挖掘,看一些例子,我意识到记录Foo 创建 Bar更重要。 Foo的一个方法返回Bar的事实是一个实现细节,我可以从我的类图中省略。所以现在,我的问题是:什么是展示" Foo创建Bar"的最佳方式。类图中的关系?
答案 0 :(得分:2)
正如我在第三次编辑中提到的,我意识到记录Foo 创建 Bar的关系更为重要。事实上Foo的一些方法返回Bar是一个更好的细节留给了Doxygen文档(在我的情况下无论如何)。
正如其他人所提到的,Foo返回Bar的事实也可以在Foo类的操作区或行为图中表示。但在我的问题中,我只限制了自己的类图而没有列出属性和操作。
我已经做了一些挖掘,并且发现UML具有<<create>>
预定义的用法依赖性构造型,将here说明为
+------------+ +------------+
| | <<create>> | |
| Datasource +-- -- -- -- -->+ Connection |
| | | |
+------------+ +------------+
<<create>>
刻板印象在UML 2.4.1 Superstructure specification,第704页中描述为:
表示客户端分类器的用法依赖项 创建供应商分类器的实例。
用法依赖是(UML 2.4.1超结构,页面139)
一个元素需要另一个元素(或集合)的关系 要素的全面实施或运作。
此外:
使用依赖性未指定客户端如何使用供应商 除了供应商被定义或使用的事实 实施客户。
UML规范还具有<<instantiate>>
预定义的构造型,定义为:
分类符之间的用法依赖性,表示对该操作的操作 客户创建供应商的实例。
<<create>>
和<<instantiate>>
刻板印象似乎有些重叠。
答案 1 :(得分:1)
方法中的返回类型在类中的方法定义中表示。大多数工具可以打开/关闭属性和方法可见性。如果类Foo在类Bar上创建或操作,则可以使用从Foo到Bar的方向关联。这听起来不像是依赖。