2013-03-23 48 views

回答

6

你需要的不是一个关联(也不是一个聚合或者是特定关联的合成),因为一个关联引用了你的ClassA属性类型为ClassB。

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

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

+0

好一点,因为参考似乎是短暂的,而不是静态的,依赖更为恰当 – SomeWittyUsername 2013-03-24 09:13:09

1

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

Aggregation/Composition描述了关联的类型,因此实际上是关联的类型(但存在不是聚合/合成的关联类型)。

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

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

5

正如其他人解释,你应该使用依赖,并没有任何形式的联系(聚合和组合)的。

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

但是,有很多不同类型的依赖关系。依赖关系的类型可以由关键字和原型指定。在你的情况,你应该使用dependency用关键字<<use>>

enter image description here

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

这种依赖性(使用)产生出现下列情况之一:

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

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

3-类A的操作使用类B的一个目的某处在其执行但不作为一个属性。

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

+0

你如何知道这是*使用*在这种情况下? – SomeWittyUsername 2013-03-24 16:31:49

+0

@icepack,这就是'<>'的定义。查看我从UML 2和统一过程书中添加到我的答案中的部分。 – jurgenreza 2013-03-24 17:07:29

+0

问题中没有任何内容将其限制为此类型。它可以是电话或跟踪,例如 – SomeWittyUsername 2013-03-24 22:17:32

0

“使用依赖关系并没有指定客户如何使用供应商,除了客户定义或实现使用供应商这一事实,例如,它可能意味着某个(或多个)客户端)类使用另一个(供应商)类的对象(例如参数)“

REF:enter link description here

相关问题