8

当一个类具有指向另一个类的方法参数指针(或引用,或对象)时,在 UML 中它反映为关联或聚合,带有菱形,还是有一些特定的符号?

4

4 回答 4

9

您需要的不是关联(也不是特定关联的聚合或组合),因为关联指的是 ClassA 的属性,属于 ClassB 类型。

在这里,对于方法参数,您可以在类之间使用依赖箭头(虚线箭头)。这是一个非常普遍的关系,应该符合您的目的。

参见例如这里的解释:http ://martinfowler.com/bliki/DependencyAndAssociation.html

于 2013-03-24T08:57:36.003 回答
8

正如其他人所解释的那样,您应该使用依赖关系而不是任何形式的关联(聚合和组合)。

依赖意味着源元素的规范或实现需要目标元素。

但是,有许多不同类型的依赖关系。依赖的类型可以通过关键字和原型来指定。在您的情况下,您应该使用dependencywith 关键字<<use>>

在此处输入图像描述

为了解释<<use>>,我引用了UML 2 and The Unified Process一书第 196 页的部分内容:

这种依赖(使用)是由以下任何一种情况产生的:

1- A 类的操作需要 B 类的参数

2- A 类的操作返回 B 类的值

3- A 类的操作在其实现的某处使用 B 类的对象,但不作为属性。

PS:依赖项可以具有的其他关键字/原型是调用、创建、派生、实例化、允许、实现、细化和跟踪。

于 2013-03-24T09:27:07.973 回答
1

关联是一个类到另一个类的链接,因此指针/引用描述了一个关联。

聚合/组合描述了关联的类型,因此实际上是它的详细说明(但有些关联类型不是聚合/组合)。

您是否要使用聚合或关联取决于您要在图表中显示的详细信息级别。

鉴于问题描述,连接的类型较弱,因为它不是静态链接,而是瞬态链接。在这种情况下,更合适的是使用依赖关系而不是关联。

于 2013-03-23T15:41:37.977 回答
0

“使用依赖项没有指定客户如何使用供应商,除了供应商被客户的定义或实现使用这一事实。例如,它可能意味着(客户)类中的某些方法使用另一个(供应商)类的对象(例如参数)。”

ref:在此处输入链接描述

于 2016-12-22T12:08:53.563 回答