关于服务定位器模式

时间:2011-09-14 18:23:38

标签: c++ dependency-injection service-locator

服务定位器似乎是一个非常有用的概念,我想在我的应用程序中实现它。但是,我有一些关于如何实现以及如何与其他编程范例结合使用的问题。

  1. SL应该管理它存储的服务吗?也就是说,当SL被破坏时,它是否也会破坏服务本身,还是应该将其留给注册该服务的人?

  2. 依赖注入怎么样?既然我有一个SL,那么将SL作为参数传递还是应该全局访问?毕竟,DI的整个目的大部分都由SL覆盖,我不想用一个参数来混淆我的许多功能。

1 个答案:

答案 0 :(得分:9)

你会认为我写了这篇文章(我没有),考虑到我经常提到它:

Service Locator is an Anti-Pattern

依赖注入使您的依赖项显式化。服务位置将它们隐藏在实现中,并在您的定位器上创建一个硬依赖。