Inheritance 组成、聚合和DI

Inheritance 组成、聚合和DI,inheritance,composition,aggregation,Inheritance,Composition,Aggregation,聚合:对象存在于另一个外部,在外部创建,因此它作为参数(例如)传递给构造函数。例:人-车。汽车是在不同的环境中创建的,而不是成为个人财产 合成:对象仅存在于另一个对象内部,或仅在另一个对象内部有意义,作为另一个对象的一部分。例:人——心。你不会创造一颗心然后把它传递给一个人 这是否意味着对于DI框架,聚合是首选和更常见的方法,并提高了可测试性 这是否也意味着像C#这样的语言中缺乏多重继承可以通过使用聚合来缓解。我总是听到关于“组合与继承”的讨论。这是有原因的吗?委托提供了比继承更灵活的解决方案-

聚合:对象存在于另一个外部,在外部创建,因此它作为参数(例如)传递给构造函数。例:人-车。汽车是在不同的环境中创建的,而不是成为个人财产

合成:对象仅存在于另一个对象内部,或仅在另一个对象内部有意义,作为另一个对象的一部分。例:人——心。你不会创造一颗心然后把它传递给一个人

这是否意味着对于DI框架,聚合是首选和更常见的方法,并提高了可测试性


这是否也意味着像C#这样的语言中缺乏多重继承可以通过使用聚合来缓解。我总是听到关于“组合与继承”的讨论。这是有原因的吗?

委托提供了比继承更灵活的解决方案-有一篇名为的好文章对此进行了详细解释-但是哪个版本(无论是聚合还是组合)是学术性的-您已经确定了差异,当取决于你想要达到的目标时,选择哪一个。但是,多重继承的缺乏通常通过接口得到缓解

谢谢-我的问题是;是否应该使用聚合一词,因为所描述的原则听起来更像是聚合的定义,而不是合成?