UML:当一个类具有作为其他类的方法参数指针时

时间:2013-03-23 14:04:53

标签: oop uml class-diagram

当一个类具有作为方法参数指针(或引用或对象)到其他类时,在UML中它被反映为关联或聚合,与钻石,或具有一些特定的符号?

4 个答案:

答案 0 :(得分:7)

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

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

例如,请参阅此处获取解释:http://martinfowler.com/bliki/DependencyAndAssociation.html

答案 1 :(得分:5)

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

依赖关系意味着目标元素是源元素的规范或实现所必需的。

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

enter image description here

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

此依赖关系(用法)由以下任何一种情况生成:

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

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

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

P.S:依赖关系可以拥有的其他关键字/构造型是调用,创建,派生,实例化,允许,实现,细化和跟踪。

答案 2 :(得分:1)

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

Aggregation / Composition描述了关联的类型,因此实际上是对它的一种去除(但是有一些类型的关联不是聚合/组合)。

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

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

答案 3 :(得分:0)

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

参考:enter link description here