java - 使用 Eclipse 中的 ObjectAid 插件在 UML 图中表示 map

标签 java dictionary uml objectaid

如何使用 Eclipse 的 ObjectAid UML 插件在 UML 图中描绘“映射”集合?

示例:

Class MyDatabase {
   Map<Integer, Person> db;
}

map 使用 Integer 作为键元素,使用 Person 对象作为值。但是,当我使用 ObjectAid 生成 UML 图时,我只得到由箭头链接的 MyDatabase 类和 Person 类。这看起来像是 Person 类型的简单属性,而不是 map 。

我知道 UML 与实现细节无关,但我想描述这种关系(映射作为属性)。有想法吗?

最佳答案

ObjectAid 实际上已经做得差不多了。 :)

map 是一种集合。集合在 UML 中使用与相应端 0..n、1..n、2..10 或类似端的关联进行建模。它们可以进一步标记为“有序”(例如 vector )或“允许重复”,以涵盖不同语言的所有不同类型的集合。

回到您的示例...为了对 Map 进行建模,有一个名为 限定符 的 UML 概念。 UML 规范摘录:

合格的关联端具有限定符,用于划分与该端的实例(合格的实例)关联的实例。每个分区由一个限定符值指定,该限定符值是一个包含每个限定符一个值的元组。关联另一端的重数决定每个分区中的实例数量。因此,例如,0..1 表示每个限定符值最多有一个实例。如果下限非零,则限定符值必须是有限集,例如因为限定符是通过枚举键入的。

更多信息请参阅 UML 规范。

它是这样的。该图完全反射(reflect)了您的代码(甚至集合名称也在那里,建模为关联的最终名称):

enter image description here

关于java - 使用 Eclipse 中的 ObjectAid 插件在 UML 图中表示 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293137/

相关文章:

java - java并发编程中的可见性问题

Java套接字服务器->只接受一个请求然后停止接受?

Python - 过滤字典 JSON 响应以仅发回两个值或转换为字符串?

uml - 我如何避免类图中的循环关系

associations - UML类图: difference between Navigation and Ownership

java - 从视频中仅捕获一张缩略图

python - 如何使用 3 个列表创建字典的字典?

java - 无法从 Netbeans 中的 Mysql 检索数据

Eclipse插件: ObjectAid UML Explorer Class Diagram: export in higher resolution

java - 如何使用 ehcache 重新加载数据?