【发布时间】:2011-02-20 22:51:54
【问题描述】:
聚合:对象存在于另一个之外,在外部创建,因此它作为参数(例如)传递给构造函数。例如:人——汽车。汽车是在不同的环境中创建的,而不是成为个人财产。
组合:对象只存在于对方内部,或仅在对方内部才有意义,作为对方的一部分。例如:人——心。你不会创造一颗心,然后将它传递给一个人。
这是否意味着对于 DI 框架,聚合 是首选和更常见的方法,并且提高了可测试性?
这是否也意味着可以通过使用聚合来缓解 C# 等语言中缺乏多重继承的问题。我一直听到有关“组合与继承”的讨论。这是有原因的吗?
【问题讨论】:
标签: inheritance composition aggregation