某些设计模式中的聚合与关联

Aggregation vs association in some design pattern

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

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

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

与聚合的区别更口语化,因为很多人会假设它意味着一对多,你可以选择那样使用它;但是在一对一聚合中并没有本质上的错误。

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