【问题标题】:uml class diagram relationship questionsuml类图关系题
【发布时间】:2014-01-08 16:40:08
【问题描述】:

我在互联网上阅读了很多。但还是很困惑,可能有人可以为我澄清一下。

我有两个问题:

  1. C 类是B 类的一部分。如果A 类需要通过B 类中的getter 获取C 类(即B.getClassC())。假设A 和B 之间没有其他关系。那我应该在类图中画什么? A-B协会?还是 A-C 关联?
  2. 与前一种情况相反。 B 类是 A 类(组合)的一部分。 A 与类C 有关联。现在B 使用C 作为参数。那我需要指定B和C之间的关系吗?又是什么关系? (使用?)

理论上,问题1中A和B之间存在关系,问题2中B和C之间存在关系。但是如果我在类图中指定所有这些,可能会导致图表更复杂。

提前致谢。

【问题讨论】:

  • 获取类是非常少见的操作。当然你的意思是别的。我们通常正在获取/设置值。其次,区分类、实例、函数和属性。第三 - “A 类是 B 类的一部分”是什么意思? B是父类吗? B 的实例是否具有作为 A 实例的属性? A 是否声明为 B 中的内部类?更正你的问题,它没有任何意义。
  • Composition 表示类 A 具有由 B 的实例组成的属性。

标签: uml


【解决方案1】:

对于在 UML 中显示它的正确方法到底是什么,我不会太纠结。 UML 并没有规定您必须在图表中显示每个关系,否则会导致混乱。

您所说的“软”关系,我会在图表中省略,或者只是在图表中显示为依赖项。这意味着如果 C 中的某些内容发生变化,那么它将/可能对 A 产生影响。

UML 用于传达设计。它并不是说你必须展示一切。我会把这些“软”关系排除在外。组合关系(即在构造函数中形成)实际上是您应该关注的唯一关系。如果它不是您想要显示的组合关系,请仔细考虑它是否正在向最终用户传达任何信息。

【讨论】:

  • 在如此小的图表中,您必须显示所有关系,否则它们将毫无用处。
  • 视情况而定。我发现如果我想说明基数,那我就放那些链接。uml 非常灵活,更像是一个草图工具,而不是系统的绝对 100% 可视化表示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多