我有一個MyServer類,它包含一個Map,其鍵是MyClientType對象,其值是MyClient對象。我想在類圖中描繪這種關係,但我無法找到一個乾淨的方式來做到這一點。如何在UML類圖中描述包含的地圖?
回答
MyServer
|
|
|
Map
|
| |
| |
MyClientTypeKey MyClientType
豈不是像上面很簡單?
- 的MyServer有一對一assoication與地圖
- 地圖上有1個與鍵和值都許多聯想。
我只是在MyClient端顯示MyServer與MyClient之間的關聯,其重合度爲0 .. *。其他一切都是實現細節,可以留給程序員。
這是兩個正確答案之一。另一個是@Kru。 – 2014-03-04 01:48:29
MyServer
|
|*
T1toT2
/ \
1/ \1
Key Value
馬克的解決方案不同的是,該服務器具有多對多關係的容器。那也是如何的Eclipse Modeling Framework (EMF) proposes to implement maps。
您可能還會拋出一些更多的UML特定的東西,例如指定鍵必須是唯一的(通過構造型)。
首先,我和其他一些人認爲,UML應該包含一些基本的集合類型,就像它在一些早期版本中那樣。他們可以採取例如從OCL ...
的「EMF辦法」似乎是正確的,但它給恕我直言,過分重視到類型,這是真的不重要恕我直言,所以我只是模型作爲一個關聯類。這將使您能夠捕獲所有可以使用常規類捕獲的地圖特定約束(例如多重性),但不會使該類與其他類一樣重要。
您可以使用一個合格的關聯關係:
┌──────────┐ 1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘ └───────┘
參見:http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Qualified+Associations/(因爲它是很難用ASCII繪製)
還要注意的是合格的關聯變化的多樣性:
┌──────────┐ 0..* ┌───────┐
│ MyServer │───────────────│ Value │
└──────────┘ └───────┘
┌──────────┐ 1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘ └───────┘
頂部顯示了從服務器到0-n值的關聯。相比之下,合格的關聯表示任何給定的鍵只與一個值相關聯,並且您不能將鍵設爲缺少值。
克魯的答案是最好的,但它仍然只暗示一個地圖。
我認爲這取決於您的圖表所在的抽象級別。如果它比較高,我會用黑猩猩的迴應。如果是比較低的,你真的需要顯示在地圖,故意展示實施有關的細節,我會用下面去:
MyServer
|
|
Map
|
|*
T1toT2
/ \
1/ \1
Key Value
如何地圖,然後在代碼實現的是完全不相關(T1toT2
運行 - 時間對象可能實際上並不會)。
正如Gabreil提到的,這可能是也可以使用關聯類
MyServer
|
|
Map
|
|*
T1toT2
|
|
1--------1
Key Value
當然建模是唯一的問題,如果你真的真的需要顯示或指定的地圖。
- 1. 如何在UML序列圖中描述C#收益率回報?
- 2. 如果GUI類被包含在UML的類圖中
- 3. 如何描述UML中的嵌套動作/活動活動圖
- 4. 繪製描述UML圖與繼承
- 5. 如何在Android中包含以下圖像中描述的平方根符號?
- 6. 動態地在php中包含多個文件的圖像描述
- 7. 描述協會類圖
- 8. 可以包含在android地圖應用中的地圖類型
- 9. 圖片庫含有很長的描述
- 10. UML類圖模型:在不同的包
- 11. 如何從系統中的用例描述中提取類圖?
- 12. Drupal - 在搜索中包含分類術語描述
- 13. 如何在描述中包含C數組
- 14. 的Xcode迅速對[[[視圖類]描述]
- 15. 如何把這個描述放在地圖像這樣?
- 16. 如何在Google元描述中使用圖片或圖標?
- 17. 圖庫在Umbraco中的個人描述
- 18. 獲取包含在地圖
- 19. 如何顯示圖像和描述類別的widget WordPress的
- 20. UML類圖
- 21. C#UML類圖
- 22. PHP UML類圖
- 23. 主類UML圖
- 24. 如何在UML圖表中表示STL地圖?
- 25. 如何包含geom_point地理地圖的參考表或圖例?
- 26. 如何聲明地圖包含條目的地圖
- 27. 如何迭代包含地圖的複雜地圖列表
- 28. 在UML類圖中,如何指定類的實際類型?
- 29. 如何顯示jmx MBean的類描述,屬性描述和操作描述
- 30. 類圖中的線程(UML)
這也是我首先想到的,但是感覺這張地圖不適合成爲一個班級。這只是一種遏制的方法。我不知道,只是覺得不對。 – gooli 2009-07-28 08:50:46
但是,只是說,直接與MyServer關聯的鍵和類型類並不顯示它們的相關性。 Map是一個容器,但也顯示了鍵和類型之間的關係。 – Mark 2009-07-28 09:21:38