2011-09-14 27 views
5

服務定位器似乎是一個非常有用的概念,我想在我的應用程序中實現它。但是,我有幾個問題應該如何實現,以及如何與其他編程範例一起使用。關於服務定位器模式

  1. SL應該管理它存儲的服務嗎?也就是說,當SL被破壞時,它是否也會破壞服務本身,還是應該把它留給誰註冊服務?

  2. 依賴注入怎麼樣?現在我有一個SL是否有任何點將SL作爲參數傳遞或者我應該在全局訪問它?畢竟,DI的全部目的都被SL覆蓋了,我不想用多一個參數來混淆我的許多功能。

回答

8

你會覺得我寫這篇文章(我沒有),考慮到我是如何經常提到它:

Service Locator is an Anti-Pattern

依賴注入讓您的依賴明顯。服務位置將它們嵌入到實現中,並在您的定位器上創建一個硬依賴關係。

+2

偉大的文章,爲C#和Java,但不是很好的C++。 C++提供了構造(例如重載新運算符和刪除運算符),無法注入依賴關係。 –

+0

這篇文章是關於java的 - 不是C++,因此不是很有用。 –