2010-12-12 113 views
1

我有一個3層應用程序。前面,業務,數據層。 我已經使用Microsoft Unity作爲依賴容器。 我已經使用NUnit和RhinoMock來測試應用程序。爲什麼我們需要通用服務定位器庫?

我讀過很多文章來介紹一個公共服務定位器層。
** 在哪些scnerios我們應該引入公共服務定位器?

  1. 在上面解釋的體系結構中,它將替換項目中的哪一層?
  2. 它將在我的項目中與哪個層進行通信?

  3. 是常見的服務定位器層只是對企業和頂層通信的WCF Web服務項目?**

回答

1

爲什麼我們需要通用服務定位器 庫?

我們並不需要它,它只是提供了更好的分離。它主要是依賴注入頂層的抽象,這樣客戶端就不需要知道服務的位置以及如何實現。

這通常會轉到您的客戶端代碼。例如,創建代理並調用服務的客戶端不需要創建代理,而是從服務定位器請求代理。

1

我想你指的是定位依賴的常用方法(即服務) ,所以在你的例子中它將取代Unity(或者Unity可能只是實現了通用接口)。

這種方式,因爲它們共享鑑定的常用方法框架的各種會一起努力多一點輕鬆的服務/插件等,

我們已經有很多是實現功能庫(團結,Ninject等) ,但是如果一個框架(例如MVC)想要獲得某個接口的實例,它需要知道你正在使用哪個庫,並且由於它們不共享通用接口,所以這很困難。通過一個通用的界面,你可以告訴MVC你想從哪裏獲得它的對象。

相關問題