2008-09-18 78 views
1

如何表示UML中兩個類之間的聚合關係,以便每個類都有指向其他類接口的鏈接,而不是實現類?使用接口時的UML聚合

E.g.我有一個實現iFoo的Foo類,以及實現iBar的Bar。 Foo應該有一個類型爲iBar的成員變量,而Bar應該有一個類型爲iFoo的成員變量。

如果我在兩個實現類之間創建聚合,那麼成員將是實現類的類型,而不是超類。在UML中接口之間的聚合是無效的(並且沒有多大意義)。

回答

1

你沒有Foo(實現)聚集iBar(接口)嗎?這似乎是描述這種關係的正確方法。

因此,像這樣:

-----------------  ----------------- 
| <<interface>> |  | <<interface>> | 
|  iFoo  |<> <>|  iBar  | 
----------------- \/ ----------------- 
     ^  /\  ^
     |  /\   | 
-----------------/ \----------------- 
|  Foo  |  |  Bar  | 
-----------------  ----------------- 
+0

它看起來像聚合標記放置在關聯的錯誤末端......除此之外,此圖描述了確切需要的內容。 – Yarik 2009-05-24 14:56:07

1

接口沒有實例化,所以酒吧不能有型的IFoo的屬性,和Foo不能有型的iBar的屬性。

你說你不想要Bar和Foo之間的關聯。所以你可以創建一個新的類(FooEx)並讓該類實現iFoo。然後Bar可以有一個關聯到FooEx而不是Foo。