5

7.3.3 关联(来自内核),第 36 页,UML 上层结构,v2.4.1:

由分类器或关系拥有的关联。

UML中有关于分类器拥有的关联和关系拥有的关联的真实例子吗?

4

2 回答 2

4

克里斯

我希望这个简单的例子有所帮助。

猜你有一个Java类

public class A {
   private B b;
   ...
}

在 UML 中,您可以将此关系建模为从 A 到 B 的关联:

A -> B

具有以下建模元素:

Class B
Class A
  + Property b : B [0..1]    (owned by the class)
Association A_to_B
  + Property from_a : A [1]  (owned by the association)

关联 A_to_B 将有 2 个关联(成员)结束引用上面显示的两个属性(A::b 和 A_to_B::from_a):

现在,让我们考虑以下情况

public class A {
   private B b;
   ...
}
public class B {
   private A a;
   ...
}

在 UML 中,您可以对 A 和 B 之间的关联(双向导航)进行建模:

A <-> B

其模型元素将是:

Class B
  + Property a : A [0..1]  (owned by the class)
Class A
  + Property b : B [0..1]  (owned by the class)
Association A_B

关联 A_B 将有 2 个关联(成员)结束引用上面显示的两个属性(A::b 和 B::a)。

于 2013-09-21T12:06:22.077 回答
3
  • 在做其他事情之前,您应该了解 A 到 B 的关联是什么。
    • 基本上它是 A 和 B 之间的一条实线。它可以表示一个将 A 的类/实例与 B 的类/实例连接起来的结构。该结构可以是任何类型的并且属于任何地方。所有关于线路的信息都描述了这个结构。
    • 如果有两个结构,一个结构将 A 的一个实例与 B 的实例连接,另一个结构将 B 的实例与 A 的实例连接,您可以在 ONE 关联中显示它们。然后,关于其 B 端的信息描述了第一个结构 (b->a),而关于另一端的信息描述了另一个结构。
    • 如果您将有多个从 A 到 B 的结构,则必须绘制两种不同的关联。
    • 如果连接结构很复杂,您可以将其表示为关联类。在那里您可以定义更多细节。
    • 一个连接结构可以连接两个以上的类,然后它将显示为一个带有实心分支的大菱形到这些类。还是联想!注意:这两个更复杂的关联在现有工具的支持下非常糟糕。你可以很容易地用它们创造出一些毫无意义的东西。而且他们很难。小心使用。

示例类图


在 C++ 中,实例 A 可以不是通过指针,而是直接拥有 B 实例。它没有特殊的 UML 符号,它应该以与普通指针属性相同的方式显示。

于 2014-02-04T11:15:41.673 回答