2010-12-12 73 views
1

我有一个3层应用程序。前面,业务,数据层。 我已经使用Microsoft Unity作为依赖容器。 我已经使用NUnit和RhinoMock来测试应用程序。为什么我们需要通用服务定位器库?

我读过很多文章来介绍一个公共服务定位器层。
** 在哪些scnerios我们应该引入公共服务定位器?

  1. 在上面解释的体系结构中,它将替换项目中的哪一层?
  2. 它将在我的项目中与哪个层进行通信?

  3. 是常见的服务定位器层只是对企业和顶层通信的WCF Web服务项目?**

回答

1

为什么我们需要通用服务定位器 库?

我们并不需要它,它只是提供了更好的分离。它主要是依赖注入顶层的抽象,这样客户端就不需要知道服务的位置以及如何实现。

这通常会转到您的客户端代码。例如,创建代理并调用服务的客户端不需要创建代理,而是从服务定位器请求代理。

1

我想你指的是定位依赖的常用方法(即服务) ,所以在你的例子中它将取代Unity(或者Unity可能只是实现了通用接口)。

这种方式,因为它们共享鉴定的常用方法框架的各种会一起努力多一点轻松的服务/插件等,

我们已经有很多是实现功能库(团结,Ninject等) ,但是如果一个框架(例如MVC)想要获得某个接口的实例,它需要知道你正在使用哪个库,并且由于它们不共享通用接口,所以这很困难。通过一个通用的界面,你可以告诉MVC你想从哪里获得它的对象。

相关问题