【问题标题】:Aggregation vs association in some design pattern某些设计模式中的聚合与关联
【发布时间】:2017-08-11 00:41:33
【问题描述】:

在一些设计模式的类图中,例如装饰器模式,我看到了一个聚合(在装饰器组件之间),但是在代码中,有一个集合,而不是一个接口类型声明的单个变量。

为什么是聚合而不是关联? 非常感谢

【问题讨论】:

  • 您必须显示您所指的图表,并说明为什么您认为需要集合,因为装饰器装饰单个组件。 IMO,装饰器和组件之间应该有组合,因为它们很可能具有相同的生命周期,除非您允许交换装饰器的内部组件。

标签: design-patterns associations aggregation


【解决方案1】:

聚合只是一种关联形式。它通常被定义为整体-部分关系,这导致假设聚合是一对多关系,这不一定是正确的。任何关联或依赖都可以是一对多的关系,但也可以是一对一的关系。聚合也不例外。

与聚合的区别更通俗一些,因为很多人会假设它意味着一对多,你可以选择这样使用它;但在一对一的聚合中没有什么本质上是不正确的。

您可以在这些参考文献中看到一些略有不同的观点。

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 1970-01-01
    • 2020-05-14
    • 2012-03-27
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多