UML表示法 – 聚合/组合与“香草”关联

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

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

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

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

当你说“香草协会”唯一的实际用途是当你对手头问题的理解尚未发展到足以确定生命周期差异并表明这种关系存在并且你可以回来时当您更好地了解手头的问题时,请适当地改变它.

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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...