【发布时间】:2013-01-17 15:12:49
【问题描述】:
想请教一下以下情况:
有一个名为 A 的类。它包含(聚合)两个类(B 和 C),但它们不是继承自同一个基类。 是否可以将 B 和 C 关联到 A 并使用带有 {or} 的约束,但在 A 侧只有一个引用? 另一个解决方案可以是使用接口(Iface),所以我可以将A与Iface相关联,B和C可以实现Iface。 但问题是我可以为此使用约束吗? (正如我发现的,将 B 和 C 关联到 A 意味着 A 将包含 B 的引用和 C 的其他引用)。
谢谢你,
费伦茨
【问题讨论】:
-
你在处理什么级别的类图?您提到 A“将包含一个引用”,这意味着您正在从中生成代码 - 如果是这样,您希望对 B|C 的引用的类型是什么?
-
嗨皮特!我问这个是因为我认为如果我将 B 和 C 关联到 A 并且 B 和 C 没有相同的基类,那么 A 将包含 2 个属性/引用/属性,而不仅仅是一个。如果这是真的,那么我不能使用约束来简化我所描述的图表,但我必须使用由 B 和 C 实现的接口,或者我需要从同一个基类(如 Eoin 的图表)继承 B 和 C。还是我错了?
标签: associations uml constraints aggregation