我最近研究了依赖注入设计模式。
class User
{
private $db;
public function __construct(Database $db)
{
$this->$db = $db;
}
}
我不禁怀疑这与我在聚合中学到的东西是一样的。如果我错了,请纠正我。我知道目标的依赖注入和聚集是不同的。我有什么想念的吗?
聚集是对象组合的一种形式。它与依赖注入无关。
另一方面,依赖项注入与对象如何关联无关,而与如何将其他对象(依赖项)放入特定对象有关。依赖关系可以是集合,服务,存储库,验证器,文字...
通常,在强类型语言中,将依赖项作为接口引入,以避免将对象耦合到实现细节。相反,在动态类型语言中,约定和强大的文档可以帮助您建立良好且紧密耦合的依赖关系图。
请注意,数据库不能是聚合的。并非所有关联都被视为聚合,而您可以考虑注入依赖。
无论如何,您的推理中都有一些设计异味:用户不应该依赖数据库,但是如果您要实现诸如active之类的功能,则数据层/数据映射层将是注入用户实体的更好的选择。记录模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句