6

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

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

  2. 依赖注入呢?既然我有一个 SL,那么将 SL 作为参数传递是否有任何意义,或者我应该全局访问它吗?毕竟,SL 也涵盖了 DI 的大部分目的,我不想再用一个参数来混淆我的很多函数。

4

1 回答 1

9

考虑到我引用它的频率,你会认为我写了这篇文章(我没有):

服务定位器是一种反模式

依赖注入使你的依赖显式化。Service Location 将它们隐藏在实现中,并创建对您的定位器的硬依赖。

于 2011-09-14T18:32:25.717 回答