Dictionary 类型字典字段的UML组合<;吧台,Quux>;

Dictionary 类型字典字段的UML组合<;吧台,Quux>;,dictionary,uml,composition,Dictionary,Uml,Composition,我想使用UML图对以下代码进行建模: public class Bar { /* ... */ } public class Quux { /* ... */ } public class Foo { public Dictionary<Bar, Quux> aField; } 公共类条{/*…*/} 公共类Quux{/*…*/} 公开课Foo{ 外地公共词典; } Foo类由许多Bar/qux组合而成,从组合与聚合的角度来看我应该如何使用UML表示它? 我能想到的唯一“

我想使用UML图对以下代码进行建模:

public class Bar { /* ... */ }
public class Quux { /* ... */ }
public class Foo {
    public Dictionary<Bar, Quux> aField;
}
公共类条{/*…*/}
公共类Quux{/*…*/}
公开课Foo{
外地公共词典;
}
Foo
类由许多
Bar
/
qux
组合而成,从组合与聚合的角度来看我应该如何使用UML表示它?

我能想到的唯一“正确”的事情是相当麻烦的:

,它与条形图有1-1关系,与Quux有1-1关系“>

但我更希望有这样的东西:

我也可以使用在
Foo
中显示字段的可能过于明显的解决方案,但我会释放合成信息,并且我希望有一些线条可以直观地连接
Foo
Bar
quox


字段,类之间没有任何行。”>

为什么不能将键和值放在第一个图表中?因此,在第一个图中,用“键”替换顶部的“1”(条形图旁边),用“值”替换下一个qo-qux


第二个图表不正确,因为可以有多个条形图和多个Quux,但数量不一定相等;它们之间也没有关系。

好吧,我想避免在我的第一个图表中出现大的
KeyValuePair
,因为它会分散注意力,感觉像是一个不应该出现的实现细节。我关心的不是
标签,而是如何以优雅的方式表示“使用字典/关联列表进行合成/…”的想法。在这种情况下,我会选择第二种解决方案。。。可能会在Foo'Dictionary'旁边添加,这样就可以清楚地看到Bar和qux之间有关系。它可能不是100%的UML,但我相信每个人都知道它的意思。你可以将它作为一个原型分配给Foo:@observer注意Foo可能有多个类变量,而不仅仅是那个字典。