意图
用强抽象层封装获取服务所涉及的流程.
类图

应用于
服务定位器模式适用于使用JNDI定位/获取各种服务的情形,因为通常这是一种冗余且昂贵的查找。服务定位器模式通过使用缓存技术来解决这种昂贵的查找问题.即第一次请求特定服务时,服务定位器会在JNDI中查找,获取相关服务,然后最终缓存此服务对象。然后,对同一服务的进一步查找通过Service Locator在其缓存中完成,这在很大程度上提高了应用程序的性能.
典型用例
- 当网络点击成本高昂且耗时时
- 服务查找非常频繁
- 使用大量服务
后果
- 向模式消费者提供他们可能不需要的许多服务的访问权限,这违反了接口隔离原则 (ISP).
- 创建可能在运行时破坏客户端的隐含依赖项.