依赖注入设计模式据说有助于松散耦合,但我无法理解如何实现它,因为调用对象必须将构造函数中的依赖项传递给服务?
请解释一下?
答案 0 :(得分:1)
我发现的唯一缺点是突出了设计问题并导致许多程序员将设计问题归咎于依赖注入。
我确信KrzysztofKoźmic可以比我更好地解释它。请阅读this。
答案 1 :(得分:1)
我无法理解它是如何实现的,因为调用对象必须将构造函数中的依赖项传递给服务?
调用对象不必须在服务的构造函数中传递依赖项。
调用对象将把服务的实现注入到它的构造函数中,如下所示:
public class CallingObject
{
private readonly IService m_Service;
public CallingObject(IService service)
{
m_Service = service;
}
public void DoSomething()
{
m_Service.AskForService();
}
}
负责将所有对象连接在一起的实体是composition root。
所以它的组合根必须将依赖项传递给服务的构造函数。