我有一个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