什么时候使用依赖注入?使用依赖注入有什么压倒性的好处吗?
问问题
1645 次
1 回答
5
Fowler 在他的Inversion of Control Containers 和 Dependency Injection 模式 Heading中对两者进行了很好的比较。在他的总结性想法中,他说
依赖注入是服务定位器的有用替代方案。在构建应用程序类时,两者大致相当,但我认为 Service Locator 有一点优势,因为它的行为更直接。但是,如果您正在构建要在多个应用程序中使用的类,那么依赖注入是一个更好的选择。
你可以在这里找到更多的观点和比较
对于 DI:
- 更容易确定组件具有哪些依赖项 - 查看构造函数。
- 组件不依赖于 Service Locator,因此如果该组件与不同的框架一起使用,则不会出现问题。
- DI 可能使测试更容易,但良好的服务定位器机制将使存根同样可行
反对 DI:
- 更难调试和理解。
- 组件一旦配置就不能从注入器请求额外的服务。
于 2012-08-30T21:50:03.977 回答