服务定位器(Service Locator)
**跟DI容器类似**,引入Service Locator目的也在于解耦。有许多成熟的设计模式也可用于解耦,但在Web应用上, Service Locator绝对占有一席之地。 对于Web开发而言,Service Locator天然地适合使用, 主要就是因为Service Locator模式非常贴合Web这种基于服务和组件的应用的运作特点。 这一模式的优点有:
Service Locator充当了一个运行时的链接器的角色,可以在运行时动态地修改一个类所要选用的服务, 而不必对类作任何的修改。
一个类可以在运行时,有针对性地增减、替换所要用到的服务,从而得到一定程度的优化。
实现服务提供方、服务使用方完全的解耦,**便于独立测试和代码跨框架复用**。