如何表示UML中两个类之间的聚合关系,以便每个类都有指向其他类接口的链接,而不是实现类?使用接口时的UML聚合
E.g.我有一个实现iFoo的Foo类,以及实现iBar的Bar。 Foo应该有一个类型为iBar的成员变量,而Bar应该有一个类型为iFoo的成员变量。
如果我在两个实现类之间创建聚合,那么成员将是实现类的类型,而不是超类。在UML中接口之间的聚合是无效的(并且没有多大意义)。
如何表示UML中两个类之间的聚合关系,以便每个类都有指向其他类接口的链接,而不是实现类?使用接口时的UML聚合
E.g.我有一个实现iFoo的Foo类,以及实现iBar的Bar。 Foo应该有一个类型为iBar的成员变量,而Bar应该有一个类型为iFoo的成员变量。
如果我在两个实现类之间创建聚合,那么成员将是实现类的类型,而不是超类。在UML中接口之间的聚合是无效的(并且没有多大意义)。
你没有Foo(实现)聚集iBar(接口)吗?这似乎是描述这种关系的正确方法。
因此,像这样:
----------------- -----------------
| <<interface>> | | <<interface>> |
| iFoo |<> <>| iBar |
----------------- \/ -----------------
^ /\ ^
| /\ |
-----------------/ \-----------------
| Foo | | Bar |
----------------- -----------------
接口没有实例化,所以酒吧不能有型的IFoo的属性,和Foo不能有型的iBar的属性。
你说你不想要Bar和Foo之间的关联。所以你可以创建一个新的类(FooEx)并让该类实现iFoo。然后Bar可以有一个关联到FooEx而不是Foo。
它看起来像聚合标记放置在关联的错误末端......除此之外,此图描述了确切需要的内容。 – Yarik 2009-05-24 14:56:07