php – 聚合和依赖注入之间的区别

我最近研究了依赖注入设计模式.

class User
{

private $db;

public function __construct(Database $db) 
{
        $this->$db = $db;
}

}

我不禁想知道这与我在聚合中学到的东西是一样的.如果我错了,请纠正我.我知道依赖注入和聚合的目标是不同的.有什么我想念的吗?

解决方法:

聚合是对象组合的一种形式.它与依赖注入无关.

另一方面,依赖注入不是关于对象如何关联,而是关于如何将其他对象(依赖关系)转换为特定对象.依赖关系可以是聚合,服务,存储库,验证器,文字……

通常,在强类型语言中,依赖关系作为接口引入,以避免将对象与实现细节耦合.相反,在动态类型语言中,约定和强大的文档可以构建一个良好且紧密耦合的依赖图.

请注意,数据库不能是聚合.并非所有关联都被视为聚合,而您可以考虑注入依赖关系.

无论如何,你的推理中有一些设计气味:用户不应该依赖于数据库,但是如果要实现像active record pattern这样的东西,数据层/数据映射层将是注入用户实体的更好的候选者.

上一篇:Python Pandas中的Groupby / Sum – 零计数没有显示……有时候


下一篇:java Mongondb聚合函数&去重