【问题标题】:Add Association Class to Composition relationship将关联类添加到组合关系
【发布时间】:2021-07-07 00:29:51
【问题描述】:

我想知道在组合关系中添加关联类是否正确?

例如(见下图),是否可以在Name类与Value的组合关系中加入一个Association Class(即NameValue类) em>类?一个Name可以有多个Value,一个Value只能附加到一个NameNameValue 类存储名称-值对。

我创建关联类(即NameValue类)的原因是我需要创建NameValue类和其他类如之间的关联/关系A 类.

如果答案是肯定的,是否建议将关联类转为普通类?

非常感谢!

【问题讨论】:

  • 看来这是协会级的夜晚(我的时间):)

标签: uml


【解决方案1】:

我想知道在组合关系中添加关联类是否正确?

是的,在关联类中,关联可以具有作为组合的所有者端属性,在formal/2017-12-05 中,从第 200 页开始的第 11.5.3.2 条关联类中没有任何内容,也没有在 §11.8.2 AssociationClass [Class]反对即使是关联类也有一些限制

NameValue 类存储名称-值对。

请注意,这绝对不是 UML 中关联类的目标,在实现关联类时也不是必需的

我创建关联类(即NameValue类)的原因是我需要在NameValue类和其他类(例如A类)之间创建关联/关系

因为 NameValue 用于在实现级别存储名称-值对,然后实现关联(-class),在 UML 中您想要的图表是:

NameValue在UML级别不存在,仅在实现级别存在)

如果答案是肯定的,是否建议将关联类转为普通类?

在 UML 级别,关联类不是无缘无故存在的,它们使模型清晰,所以我不建议不使用类关联(但这当然是基于意见的)

【讨论】:

  • 您好布鲁诺,感谢您的回复。 NameValue 关联类实际上是我的 uml 图中的一个重要类,因为它与相当多的类有关系,所以我想知道是否可以为此目的创建 NameValue 关联类,以便 NameValue 类与其他类可以更清晰的呈现吗?
  • @snow 在不了解 NameValue 的其他用途的情况下很难回答。无论如何,让我说它的名字 NameValue 只是将 namevalue 关联起来,所以是“差”/具有“低水平”的含义,这门课是有问题的。通常,当我们无法为某个元素找到一个“好”的名称时,这是因为该元素不是一个好的解决方案。
  • 这是有道理的。抱歉没有解释 NameValue 类的细节。它实际上是一个名为 Property 的类,它将 PropertyName(实例示例:Level)和 PropertyValue(实例示例:High、Medium、Low)关联起来。 Property 类还包含一个 ID 字段。 Property 类与其他类有关联,例如 User(表示 User 有 Property)、Resource(表示 Resource 有 Property)等。
  • 再补充一点,Property 关联类也有自己的约束。
  • @snow 有一点是肯定的:在 UML 级别,用于创建关联类的类根本不存储由关联链接的类的实例对,这就是属性的作用 (所有者结束)协会。如果您有一个关联类,而不仅仅是一个关联,这是因为您需要将类的语义添加到您的关联中。
猜你喜欢
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多