有一个例子可以解释UML中的关联。
一个人为公司工作;一家公司有多个办事处。
但我无法理解Person,Company和Office类之间的关系。我的理解是:
但我不确定第二点。如果我错了,请纠正我。
谢谢。
答案 0 :(得分:1)
为什么要在这种情况下使用合成或聚合? UML规范将聚合的含义留给建模者。您希望它对您的观众意味着什么?对于这种情况,构图的意义可能太强了。那么,为什么要在这里使用呢?我建议你使用简单的关联。
如果我是你,我会更加真实地处理问题领域。在我所知道的世界里,当公司倒闭时,办公室不会停止存在。相反,公司在一段有限的时间内占用一些办事处。如果公司倒闭,办事处将被出售或出租给其他公司。办公室没有被烧毁。
如果您不熟悉应用程序中的问题域,那么当客户“更改该应用程序的要求”时,您所使用的快捷方式将变为无效。问题域实际上并没有太大变化,只是你可以采取的快捷方式。如果您使用快捷方式以与问题域未对齐的方式满足要求,则调整应用程序的成本很高。你的客户变得不快乐,你最终加班加点。拯救自己和每个人的麻烦!
答案 1 :(得分:1)
虽然Jim的回答是正确的,但我想补充一些额外的信息。聚合有两个主要用途
在第一种情况下,它提示了物体应存活多长时间。这与内存使用量直接相关。如果目标语言(像大多数现代语言一样)使用垃圾收集器,则可以忽略此模型信息。
在第二种情况下,它只是部分内存问题。数据库中的复合聚合表示需要将聚合元素与聚合元素一起删除。这不是内存,但在大多数情况下是安全问题。所以在这里你必须三思而后行。
然而,共享聚合在所有情况下都具有非常深奥的含义。