UML aggregation when interfaces are used如何在UML中表示两个类之间的聚合关系,以使每个类都有到另一个类的接口的链接,而不是到实现类的链接? 例如。 我有一个实现iFoo的类Foo和一个实现iBar的Bar。 Foo应该具有iBar类型的成员变量,而Bar应该具有iFoo类型的成员变量。 如果我在两个实现类之间创建一个聚合,则该成员将是实现类的类型,而不是超类。 接口之间的聚合在UML中是无效的(并且没有太大意义)。 接口不是可实例化的,因此Bar不能具有iFoo类型的属性,而Foo不能具有iBar类型的属性。 您说您不希望Bar和Foo之间建立关联。 因此,您可以创建一个新的类(FooEx),并让该类实现iFoo。 然后,Bar可以具有与FooEx而不是Foo的关联。 您可以没有Foo(实现)聚合iBar(界面)吗? 在我看来,这是描述这种关系的正确方法。 所以像这样:
|