依赖注入DI的代替,服务定位器模式

2019-02-19  本文已影响0人  richy_

以下内容是我用来温习的,从以下两个博客总结而来,请关注原作者

ref:

Service Locator 模式

设计模式【服务器定位模式Service Locator Pattern】

服务定位模式(Service Locator Pattern)是一种软件开发中的设计模式,可对涉及尝试获取一个服务的过程进行封装。该模式使用一个称为 "Service Locator" 的中心注册表来处理请求并返回处理特定任务所需的必要信息。

在首次请求某个服务时,服务定位器会查找服务,没有已经存在的服务,会新建并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能。

优点

解决方案

创建一个 Service Locator,其包含各服务的引用,并且封装了定位服务的逻辑。在类中使用 Service Locator 来获取所需服务的实例。

image

Service Locator 模式并不描述如何实例化服务其描述了一种注册和定位服务的方式。通常情况下,Service Locator 模式与工厂模式(Factory Pattern)和依赖注入模式(Dependency Injection Pattern)等结合使用。

服务定位器应该能够在不知道抽象类的具体类型的情况下定位到服务。例如,它可能会使用字符串服务接口类型来映射服务,这允许在无需修改类的条件下替换依赖项的具体实现。

实现细节

我们将创建 ServiceLocator、InitialContext、Cache、Service 作为表示实体的各种对象。Service1 和 Service2 表示实体服务。

ServiceLocatorPatternDemo,我们的演示类在这里是作为一个客户端,将使用 ServiceLocator 来演示服务定位器设计模式。

image

注意事项

在使用 Service Locator 模式之前,请考虑以下几点:

相关模式

上一篇 下一篇

猜你喜欢

热点阅读