服务定位器模式和依赖注入模式之间有什么区别吗?

时间:2013-05-11 09:36:02

标签: design-patterns dependency-injection service-locator

服务定位器之间是否有任何区别 模式和依赖注入模式?

1 个答案:

答案 0 :(得分:1)

嗯,如果他们是相同的话他们就不会有不同的名字,是吗?

依赖注入模式是关于将依赖注入到使用它们的内容中 - 类本身并不实例化它们,但它们会被传递给它(通过构造函数注入,属性注入或作为使用它们的方法的参数)一般)。该类的调用者 / 创建者必须对其进行管理。

这就是IoC容器管理的东西 - 例如依赖链。他们知道每个类具有什么依赖关系以及如何使用这些依赖关系实例化它。

服务定位器模式的不同之处在于服务定位器实例化依赖关系 - 但是,这通常是在依赖类中完成的,作为对服务定位器的调用。