服务定位器似乎是一个非常有用的概念,我想在我的应用程序中实现它。但是,我有一些关于如何实现以及如何与其他编程范例结合使用的问题。
SL应该管理它存储的服务吗?也就是说,当SL被破坏时,它是否也会破坏服务本身,还是应该将其留给注册该服务的人?
依赖注入怎么样?既然我有一个SL,那么将SL作为参数传递还是应该全局访问?毕竟,DI的整个目的大部分都由SL覆盖,我不想用一个参数来混淆我的许多功能。
答案 0 :(得分:9)
你会认为我写了这篇文章(我没有),考虑到我经常提到它:
Service Locator is an Anti-Pattern
依赖注入使您的依赖项显式化。服务位置将它们隐藏在实现中,并在您的定位器上创建一个硬依赖。