2

如何在 UML 中表示索引或参数化的属性?

例如,如何反转以下Java代码:

 class MyClass {

       Object getValue(String key);
       void setValue(String key, Object value);

 }

一方面我可以简单地描述它

在此处输入图像描述

但这不会表明这两种方法是相关的。

另一方面,我可以描述它

在此处输入图像描述

但这将隐藏一个事实,即一个值的多个实例由 key 参数命名。

以下C#代码会出现类似的问题:

class MyClass
{
    public string this[int i]
    {
        get
        {
        }
        set
        {
        }
    }
}
4

2 回答 2

1

没有一个很好的答案,因为这个类实际上是一个字典/哈希。您可以在此处找到有关您可以选择的选项的讨论:

如何在 UML 中表示 .NET 字典类型? 或者可能是这个(如引用的): 如何在 UML 类图中描述包含的映射?

于 2012-12-12T16:32:58.240 回答
0

如果我理解,您现在关心您的类的实例(每个键/值的实例)。实例以冒号为前缀。要使用您的示例,它们可能看起来像 MyClass:MyInstance

于 2012-12-12T09:57:36.493 回答