我有一个类图,它有一个字典(用python术语)作为属性。这是基本结构:
serverEntry = { creditCardObj1 : accountBalance1, creditCardobj2 : accountBalance2, ...}
为了澄清,creditCardObj1是一个类CreditCard的实例,而accountBalance1是一个整数值,类似于字典中的其他条目。
我在Java中读到它,它被称为HashMap。无论如何,我想在我的UML类图中实现它。关于如何做到这一点的任何提示。我正在使用Visio 2007,所以如果有人可以解释这个问题会更有帮助。
答案 0 :(得分:1)
我不会对此付出太多努力,因为已经选择了另一个答案。该答案并未涵盖UML中与HashMap最接近的内容:限定符。它被绘制为类和关联之间的矩形。矩形内部是名称和类型。这意味着,给定该类型的实例,该关联将在关联的另一端产生一些事物实例。使用多重性指定了该实例数。
出于您的目的,您可以将creditCard: CreditCard
放在限定符矩形内,将Integer
放在关联的另一端,使用1
的多重性。
答案 1 :(得分:0)
我认为这个问题更多的是关于UML而不是编程语言。因此,请允许我使用我觉得更舒服的语言。
C#也称为词典,string
例如 HashKey 的show as Association
。幸运的是,Visual Studio中的UML类图(我在这里使用VS 2015的社区版)足够接近代码,因此UML模型基本上是语言的元模型,而图表只是对真实代码的不同视图。
这很方便,因为真正的编程问题 - 就像你要求的那样 - 可以直接在图中解决。 (另外:没有额外的代码生成或获取或维护图表所需的额外解析)。
我喜欢Visual Studio解决这个问题的方式。他们提供两种选择,一种更侧重于技术性(show as Collection Association
)
是一个更关注域名(Dictionary
)的人。
我通常只在我需要图表来强调涉及<dependency>
<groupId>org.webjars</groupId>
<artifactId>extjs</artifactId>
<version>6.0.0</version>
</dependency>
类时才使用第一个,在其他情况下,第二个选项是我的首选选项。
答案 2 :(得分:-1)