如何使用 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)了您的代码(甚至集合名称也在那里,建模为关联的最终名称):
关于java - 使用 Eclipse 中的 ObjectAid 插件在 UML 图中表示 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293137/