1

我想问你以下情况:

有一个名为 A 的类。它包含(聚合)两个类(B 和 C),但它们不是从同一个基类继承的。是否可以将 B 和 C 关联到 A 并使用带有 {or} 的约束,但在 A 侧只有一个引用?另一个解决方案可以是使用接口(Iface),所以我可以将A与Iface关联起来,B和C可以实现Iface。但问题是我可以为此使用约束吗?(正如我发现的,将 B 和 C 关联到 A 意味着 A 将包含 B 的引用和 C 的其他引用)。

谢谢,

费伦茨

4

1 回答 1

0

我想您要问的是您是否可以对 A 建模,使其与另一个对象具有单一关联,该对象可以是 B 或 C 类型。对吗?

在这种情况下,您不需要约束,只需从 A 到新类(称为“D”)的关联,然后 B 和 C 将从 D 继承,如下所示:

在此处输入图像描述

这当然意味着您必须确定 B 和 C 的共同特征才能将其分解为 D 以允许可替代性。而 A 只能依赖 B 和 C 的那些特性。

如果您需要 A 与 B 或 C 具有常规关联并且不能使用继承,那么您需要与 {or} 约束的单独关联,因为您已正确识别。

于 2013-02-03T08:34:04.710 回答