我最近花了很多时间对各种软件组件进行详细的UML设计,然后编写代码。回顾我最近完成的工作并将其与我第一次学习UML时的情况进行比较,我发现我现在几乎只使用聚合和组合关系,而几乎放弃了“普通”的非定向/有向关系。当然,我仍然使用泛化和实现,但这些与上述关系明显不同,不属于本问题的范畴。
在我看来,聚合/组合意味着“普通”关联的含义以及更多的含义。聚合和组合自然地暗示了一个方向,并且任何现代UML程序仍然允许您定义聚合/组合关系的多重性并为关系应用动词。在这一点上,我认为普通关联的作用很小。
我知道有些人难以理解聚合和组合之间的区别。早期,我也有一些困难,我相信这种混淆是我使用普通关联的原因之一。现在我已经到了这样的地步,我认为几乎没有使用普通关联的必要,实际上我不喜欢看到它们被使用,因为我认为它们会留下一些问题(特别是两个对象之间的强或弱生命周期关系)。我认为普通关联的唯一实际用途是当您对手头的问题的理解还不够发展时,无法确定聚合和组合之间的生命周期差异。在这种情况下,最好至少“显示”关系存在,然后在更好地了解手头问题时再适当地更改它。
长话短说,我认为大多数人使用普通关联的时间,他们可以更准确地描述为聚合,有时也可以描述为组合。我的想法非常错误吗?我错过了什么吗?让我听听你的意见!
在我看来,聚合/组合意味着“普通”关联的含义以及更多的含义。聚合和组合自然地暗示了一个方向,并且任何现代UML程序仍然允许您定义聚合/组合关系的多重性并为关系应用动词。在这一点上,我认为普通关联的作用很小。
我知道有些人难以理解聚合和组合之间的区别。早期,我也有一些困难,我相信这种混淆是我使用普通关联的原因之一。现在我已经到了这样的地步,我认为几乎没有使用普通关联的必要,实际上我不喜欢看到它们被使用,因为我认为它们会留下一些问题(特别是两个对象之间的强或弱生命周期关系)。我认为普通关联的唯一实际用途是当您对手头的问题的理解还不够发展时,无法确定聚合和组合之间的生命周期差异。在这种情况下,最好至少“显示”关系存在,然后在更好地了解手头问题时再适当地更改它。
长话短说,我认为大多数人使用普通关联的时间,他们可以更准确地描述为聚合,有时也可以描述为组合。我的想法非常错误吗?我错过了什么吗?让我听听你的意见!