Container允許我們爲類提供所需的依賴關係。如果類是容器已知的,它可以創建任何bean。它是服務定位器的例子嗎?IOC容器是服務定位器模式的示例嗎?
2
A
回答
1
不,DI Container本身不是服務定位器,但它可以像一個一樣使用。這完全取決於它的用途。
只要你使用容器內的Composition Root,它是一個not服務定位器。但是,一旦使用容器以外的組合根,調用容器(或其上的抽象)就成爲Service Locator anti-pattern的一種形式。
2
這Martin Fowler的article提到了兩者之間的區別:
兩個模式之間的重要區別是關於實現是如何提供給應用程序類。使用服務定位器,應用程序類會通過消息向定位器明確要求。通過注入沒有明確的請求,服務出現在應用程序類中 - 因此控制反轉。
相關問題
- 1. IoC容器的示例
- 2. 從galasoft與MEF和IOC容器定製服務定位器
- 3. 使用IoC容器作爲HttpHandler的服務定位器
- 4. 混淆了使用IOC容器,服務定位器和工廠
- 5. 服務定位器/ IOC在ASP.Net環境
- 6. Swift中的服務定位器模式
- 7. 爲什麼服務定位器在以下示例中是反模式?
- 8. 使用服務定位器向服務提供容器實例是錯誤的嗎?
- 9. 關於服務定位器模式
- 10. 通過IoC容器實現WCF服務
- 11. 服務容器或IoC for WinForms建議
- 12. 驗證我瞭解IoC,Ioc容器,DI和服務定位器之間的區別
- 13. IoC容器。注入容器
- 14. Laravel:綁定到IoC容器
- 15. Biztalk IOC容器
- 16. C#IoC容器
- 17. IOC/Autofac容器
- 18. IoC容器應該解析OR映射器容器嗎?
- 19. KendoUI網格服務器綁定示例
- 20. IoC容器 - 註冊實例組件
- 21. IoC容器 - 單例還是繞過實例?
- 22. IoC容器不應該處理業務邏輯單例的序列化嗎?
- 23. Swarm模式將在Azure容器服務上得到支持嗎?
- 24. LightInject IoC容器中的ObjectFactory.GetInstance模擬
- 25. FinalBuilder服務器+ FastMM4示例
- 26. Zend Soap服務器示例
- 27. 服務定位器未設置fubuMVC HelloWorld示例
- 28. SQL服務器 - 從特定的模式
- 29. 便攜式類庫的IoC容器
- 30. IoC容器配置
您使用的引用來自「Service Locator vs Dependency Injection」。所以引用描述了依賴注入和服務位置之間的區別,但是這並沒有回答這個問題。問題是關於* Container *;一個可以執行依賴注入*和*服務位置的工具。 – Steven