UML 中分类器拥有的关联和关系拥有的关联

问题描述 投票:0回答:2

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

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

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

associations uml relationship classification
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)。


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

example Class diagram


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

© www.soinside.com 2019 - 2024. All rights reserved.