在 class 图中表示 HashMap

Represent HashMap in class diagram

我有一个 class 图,其中有一个字典(在 python 术语中)作为属性。这是基本结构:

serverEntry = { creditCardObj1 : accountBalance1, creditCardobj2 : accountBalance2, ...}

澄清一下,creditCardObj1 是 class CreditCard 的一个实例,而 accountBalance1 是一个整数值,对于字典中的其他条目也是如此。

我在Java中看到,它叫做HashMap。无论如何,我想在我的 UML class 图中实现它。关于如何做到这一点的任何提示。我使用的是 Visio 2007,所以如果有人能对此进行解释会更有帮助。

我不会为此付出太多努力,因为已经选择了另一个答案。该答案并未涵盖 UML 中最接近 HashMap 的东西:限定符。它被绘制为 class 和关联之间的矩形。矩形内部是名称和类型。这意味着给定该类型的实例,关联将在关联的另一端产生一定数量的事物实例。该实例数是用多重性指定的。

出于您的目的,您可以将 creditCard: CreditCard 放在限定符矩形内,将 Integer 放在关联的另一端,重数为 1.

我认为这个问题更多的是关于 UML 而不是编程语言。因此,请允许我使用我觉得更舒服的语言。

C# 也称它为字典,例如 Dictionary<string, T> HashKeystring。 Class Visual Studio 中的 UML Class 图(我在这里使用 VS 2015 的社区版)幸运的是足够接近代码,因此 UML 模型基本上是语言的元模型,图只是一个与真实代码的不同视图。

这会派上用场,因为真正的编程问题(如您要求的问题)可以直接在图中解决。 (另外:不需要额外的代码生成或额外的解析来获取或维护图表)。

我喜欢 Visual Studio 解决这个问题的方式。他们提供了两种选择,一种更侧重于技术细节 (show as Association)

还有一个更专注于领域 (show as Collection Association)。

我通常只在需要图表强调涉及 Dictionary class 时才使用第一个,在所有其他情况下,第二个选项是我的首选。