据我所知,依赖注入与服务位置不同。但是Unity 应用程序块包含Common Service Locator库(我认为它是一个服务定位器)。应该如何使用该库以及何时使用它,以及它是否被统一本身用于依赖注入?
注意:请不要引用CommonServiceLocator CodePlex 主页上的用法。
问问题
361 次
2 回答
2
Common Service Locator 接口适用于希望使用 DI 容器而不强制库在使用该库的应用程序上选择容器的库作者。目的是在需要解析对象的库中,改为针对 CSL 接口编写代码;然后您可以使用调用您的应用程序正在使用的任何容器。
如果您不编写可重用的库组件,请不要使用 CSL。这是一个额外的层,不会给你买任何东西。
于 2012-11-18T06:30:06.487 回答
1
不,依赖注入与服务位置不同,但是它们确实有很多功能相似之处。他们不分享的是更多的哲学方法。
两者都提供对应用程序中配置的对象的访问。然而,依赖注入说你永远不应该明确地请求一个对象(或接口)。相反,您应该指定一个对象或接口,框架将为您处理所有事情。
服务位置是您直接从服务定位器系统请求对象的地方。
换句话说,服务位置要求您找到您想要的对象。依赖注入假设你是用你需要的对象创建的。
于 2012-11-18T07:15:13.870 回答