5

什么时候使用依赖注入?使用依赖注入有什么压倒性的好处吗?

4

1 回答 1

5

Fowler 在他的Inversion of Control Containers 和 Dependency Injection 模式 Heading中对两者进行了很好的比较。在他的总结性想法中,他说

依赖注入是服务定位器的有用替代方案。在构建应用程序类时,两者大致相当,但我认为 Service Locator 有一点优势,因为它的行为更直接。但是,如果您正在构建要在多个应用程序中使用的类,那么依赖注入是一个更好的选择。

你可以在这里找到更多的观点和比较

对于 DI:

  • 更容易确定组件具有哪些依赖项 - 查看构造函数。
  • 组件不依赖于 Service Locator,因此如果该组件与不同的框架一起使用,则不会出现问题。
  • DI 可能使测试更容易,但良好的服务定位器机制将使存根同样可行

反对 DI:

  • 更难调试和理解。
  • 组件一旦配置就不能从注入器请求额外的服务。
于 2012-08-30T21:50:03.977 回答