听说你还不懂 Java 的服务定位器模式?

1 概述

当你想使用 JNDI 查询定位各种服务时,便可考虑该模式。
由于为某个服务查找 JNDI 的代价很高,服务定位器模式(后文简称为 SLP)充分利用了缓存技术。在首次请求某服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同服务时,服务定位器会在它的缓存中查找,便可极大提高应用程序的性能。

2 构成

  • 服务(Service)
    实际处理请求的服务。对该服务的引用可在 JNDI 服务器中查到
  • Context / 初始的 Context
    JNDI Context 带有对要查找的服务的引用
  • 服务定位器(Service Locator)
    服务定位器是通过 JNDI 查找和缓存服务来获取服务的单点接触
  • 缓存(Cache)
    缓存存储服务的引用,以便复用它们
  • 客户端(Client)
    Client 是通过 ServiceLocator 调用服务的对象。

3 示例

  • UML 图设计

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

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

服务定位器模式的 UML 图

3.1 服务接口Service

3.2 实体服务


前两主要表现接口之间的多态性,指定行为方式。

3.3 为 JNDI 查询创建 InitialContext

  • 工厂模式的应用,通过类名确定要实例化的对象。

3.4 创建缓存 Cache

  • 对实体类集合进行操作,主要是在集合中 获取/添加 实体类对象。

3.5 创建服务定位器

  • 使用步骤3来创建实例,使用步骤4来添加到集合,或者从集合中获取。(缓存中没有才会创建)

3.6 测试

使用 ServiceLocator 来演示服务定位器设计模式。
调用步骤5得到实体类,并执行实体类的方法。

全部评论
是大佬
点赞 回复 分享
发布于 2020-08-17 11:33

相关推荐

不愿透露姓名的神秘牛友
昨天 15:37
点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务