我想问你以下情况:
有一个名为A的类。它包含(聚合)两个类(B和C),但它们不是从同一个基类继承的。 是否可以将B和C关联到A并使用约束{或},但在A侧只有一个引用? 另一种解决方案可以使用接口(Iface),因此我可以将A与Iface相关联,B和C可以实现Iface。 但问题是我可以使用约束吗? (正如我发现的,将B和C与A相关联意味着A将包含B的引用和C的其他引用)。
谢谢,
Ferenc的
答案 0 :(得分:0)
我认为你所问的是你是否可以建模A与另一个对象有一个关联,可以是B型或C型。是吗?
在这种情况下,您不需要约束,只需要从A到新类的关联(称之为“D”),然后B和C将从D继承,如下所示:
这当然意味着您必须确定B和C的共同特征,以分解为D以允许可替代性。 A只能依赖B和C的那些特征。
如果您需要A与B或C有常规关联而且不能使用继承,那么您需要与{或}约束单独关联,因为您已正确识别。