UML表示法 - 聚合/组合与"香草"关联

Jam*_*mes 6 uml associations composition aggregation

我最近花了很多时间来执行我编写的各种SW组件的详细UML设计.回顾一下我最近完成的事情,并将其与我第一次学习UML时的情况进行比较,我发现我现在几乎严格使用聚合和组合关系,并且几乎放弃了"香草"非定向/定向关系.我当然仍然使用泛化和实现,但这些与上面的明显不同,并不被视为此问题的一部分.

在我看来,聚合/组合意味着"香草"联想的含义相同,等等.聚合和组合自然意味着一个方向,任何现代UML程序仍然允许您在聚合/组合关系上定义多重性并将动词应用于关系.那时,我认为香草协会的目的不大.

我理解有些人很难理解聚合和组合之间的区别.在早期,我有点难以理解他们的差异,我相信混淆是我使用香草协会的部分原因.我现在处于这样的地步,我看到很少或没有使用香草协会,并且实际上不喜欢看到它们被使用,因为我相信它们会留下一些问题(特别是两个对象之间强大或弱的生命周期关系).我相信香草协会唯一的实际用途是当你对手头问题的理解还没有发展到足以确定聚合和成分之间的生命周期差异时.在这种情况下,最好至少表明关系存在,然后当您更好地理解手头的问题时,您可以回来并适当地改变它.

长话短说,我相信人们使用香草协会的绝大多数时间,他们可以更准确地描述为聚合,有时作为一个组合.在我的信念中,我是非常错的吗?我错过了什么吗?让我听听吧!

Mar*_*mer 1

当你说“普通关联”时,你已经击中要害了,只有当你对当前问题的理解还没有发展到足以确定生命周期差异表明关系存在并且你可以回来时,“普通关联”才具有实际用途当你对手头的问题有了更好的理解后,适当地改变它

UML 元模型将聚合和组合定义为关联的扩展。关联可以被视为域对象之间的未细化的关系,就像域对象是未细化的类一样。我通常在域建模阶段使用简单的关联,并在解析详细的类模型时根据需要将其细化为组合或聚合。