对象图中的聚合关联

3

类之间的关联(当然是指类图中的关联)是一组不同对象(在对象图中)之间链接的抽象。聚合是一种特殊的关联,它有一个特殊的符号——菱形。

A House has many (zero to many) windows.

enter image description here

以下图表中的对象名称实际上应该被加下划线。我的绘图工具yuml没有明显的调整方式,因此我希望这不会太令人困惑。两张图片唯一的区别在于第一张中有菱形符号。

my:House has side:Window
         has back:Window
         has front:Window

enter image description here

钻石符号是否也用于对象(即实例)图中?或者在对象图中,连接线总是简单的直线吗?

enter image description here


请考虑从vainolo的答案中删除正确标记 - 它绝对不正确。 - Christian
2个回答

4

如果关联是聚合关系,你也应该在链接上使用菱形符号。

另外,对象名称(和类型)应该加下划线以便更容易区分它们与类的区别。

请参阅 UML 2.4 超结构 7.3.22 和图 7.52 在 http://www.omg.org/spec/UML/2.4/Superstructure/PDF/


我猜测我在这个主题上的UML知识可能是错误的或过时的(或两者都有!)。又要开始读UML超结构了 :-)。感谢@Christian的纠正。 - vainolo
我实际上记不得vainolo昨天建议了什么,但对我来说听起来很明智和切中要点。至于参考资料,我猜7.52是一个强调的提示。这是所使用软件的技术问题,对此我感到抱歉。 - panny
关于7.3.22,我找不到具体的建议是否使用菱形符号,只是提示使用关联箭头。如果你读到其他更支持在对象图中使用与类图相同符号表示法的内容,请指出来吗? - panny
1
一个小备注:虽然在对象/类图中使用菱形符号是可以的,但是否这样做取决于设计师根据特定图表所要实现的详细级别来决定。 - SomeWittyUsername
一个实例规范使用与其分类器相同的符号来表示。 而且,“当一个实例规范的分类器是一个关联时,它代表了一个链接,并且使用与关联相同的符号来显示”,这让我得出了这个结论。 - Christian

0

你的图表有问题。因为房子和窗户之间的关系应该是组合而不是聚合。如果我们考虑一个具体的窗户,那么这个窗户只属于一个房子。如果房子消失了,窗户也会消失。所以这是组合关系。

回答你的问题是,“我们不需要在对象图中显示聚合和组合关系”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接