Skip to content

意图

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

类图

alt text

应用于

服务定位器模式适用于使用JNDI定位/获取各种服务的情形,因为通常这是一种冗余且昂贵的查找。服务定位器模式通过使用缓存技术来解决这种昂贵的查找问题.即第一次请求特定服务时,服务定位器会在JNDI中查找,获取相关服务,然后最终缓存此服务对象。然后,对同一服务的进一步查找通过Service Locator在其缓存中完成,这在很大程度上提高了应用程序的性能.

典型用例

  • 当网络点击成本高昂且耗时时
  • 服务查找非常频繁
  • 使用大量服务

后果

  • 向模式消费者提供他们可能不需要的许多服务的访问权限,这违反了接口隔离原则 (ISP).
  • 创建可能在运行时破坏客户端的隐含依赖项.

鸣谢