当前位置: 首页 > news >正文

什么网站可以免费发广告wordpress 买主题

什么网站可以免费发广告,wordpress 买主题,网络营销课程设置,wordpress 全屏浮动Java服务定位器模式 实现范例 服务定位器模式(Service Locator Pattern)用于想使用 JNDI 查询定位各种服务的时候考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术在首次请求某个服务时,服务定位器在 JNDI…

Java服务定位器模式

    • 实现
    • 范例

  • 服务定位器模式(Service Locator Pattern)用于想使用 JNDI 查询定位各种服务的时候
  • 考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术
  • 在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象
  • 当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能
  • 以下是这种设计模式的实体:
    • 服务(Service) - 实际处理请求的服务。对这种服务的引用可以在 JNDI 服务器中查找到
    • Context / 初始的 Context - JNDI Context 带有对要查找的服务的引用
    • 服务定位器(Service Locator) - 服务定位器是通过 JNDI 查找和缓存服务来获取服务的单点接触
    • 缓存(Cache) - 缓存存储服务的引用,以便复用它们
    • 客户端(Client) - Client 是通过 ServiceLocator 调用服务的对象

实现

在这里插入图片描述

  • 创建 ServiceLocator 、 InitialContext 、 Cache 、 Service 作为表示实体的各种对象
  • Service1 和 Service2 表示实体服务
  • ServiceLocatorPatternDemo ,我们的演示类在这里是作为一个客户端,将使用 ServiceLocator 来演示服务定位器设计模式

范例

1. 创建服务接口 Service

Service.java

package com.demo.gof;
public interface Service{public String getName();public void execute();
}

2. 创建实体服务

Service1.java

package com.demo.gof;
public class Service1 implements Service {public void execute(){System.out.println("Executing Service1");}@Overridepublic String getName() {return "Service1";}
}

Service2.java

package com.demo.gof;
public class Service2 implements Service {public void execute(){System.out.println("Executing Service2");}@Overridepublic String getName() {return "Service2";}
}

3. 为 JNDI 查询创建 InitialContext

InitialContext.java

package com.demo.gof;
public class InitialContext{public Object lookup(String jndiName){if(jndiName.equalsIgnoreCase("SERVICE1")){System.out.println("Looking up and creating a new Service1 object");return new Service1();}else if (jndiName.equalsIgnoreCase("SERVICE2")){System.out.println("Looking up and creating a new Service2 object");return new Service2();}return null;      }
}

4. 创建缓存 Cache

Cache.java

package com.demo.gof;
import java.util.ArrayList;
import java.util.List;public class Cache {private List<Service> services;public Cache(){services = new ArrayList<Service>();}public Service getService(String serviceName){for (Service service : services) {if(service.getName().equalsIgnoreCase(serviceName)){System.out.println("Returning cached  "+serviceName+" object");return service;}}return null;}public void addService(Service newService){boolean exists = false;for (Service service : services) {if(service.getName().equalsIgnoreCase(newService.getName())){exists = true;}}if(!exists){services.add(newService);}}
}

5. 创建服务定位器 ServiceLocator

ServiceLocator.java

package com.demo.gof;
public class ServiceLocator {private static Cache cache;static {cache = new Cache();      }public static Service getService(String jndiName){Service service = cache.getService(jndiName);if(service != null){return service;}InitialContext context = new InitialContext();Service service1 = (Service)context.lookup(jndiName);cache.addService(service1);return service1;}
}

6. 使用 ServiceLocator 来演示服务定位器设计模式

ServiceLocatorPatternDemo.java

package com.demo.gof;
public class ServiceLocatorPatternDemo{public static void main(String[] args) {Service service = ServiceLocator.getService("Service1");service.execute();service = ServiceLocator.getService("Service2");service.execute();service = ServiceLocator.getService("Service1");service.execute();service = ServiceLocator.getService("Service2");service.execute();        }
}编译运行以上 Java 范例,输出结果如下```java
$ javac -d . src/main/com.demo/gof/ServiceLocatorPatternDemo.java
$ java  com.demo.gof.ServiceLocatorPatternDemo
Looking up and creating a new Service1 object
Executing Service1
Looking up and creating a new Service2 object
Executing Service2
Returning cached  Service1 object
Executing Service1
Returning cached  Service2 object
Executing Service2
http://www.yayakq.cn/news/187534/

相关文章:

  • 滑县网站建设哪家便宜nas可做网站服务器吗
  • 免费 网站 平台wordpress英文版安装选哪个语言
  • 网上三维展馆网站是怎么做的lovefort表白网站制作
  • 做网站的去那里接单中国建设银行个人登录入口
  • 口腔医院网站建设在线图片编辑器
  • 做网站干什么国外产品展示网站源码
  • 网站建设长尾关键词做ppt素材的网站有哪些
  • 大名网站建设电话网站建设调研表
  • 青岛网站有限公司软件开发模式
  • 雅安建设网站吉林智能网站建设找哪家
  • 做个网站得投入多少交通网上服务平台
  • 网站建设中 页面广告设计主要做什么
  • 公司网站服务器租赁家政服务网站建设
  • 柳州公司网站建设wordpress 文章调用
  • 学校网站功能百度竞价推广开户内容
  • 政务网站建设经验做法郑州网站推广外包
  • 仙居建设局网站海口网站制作设计
  • 莱芜网站优化有哪些专业展示设计网站
  • 免费的网站推广软件下载建筑业服务平台
  • 视频网站焦点图广州海珠区最新通告
  • 广西南宁建设厅网站网站后期维护是做什么
  • 百度站内搜索成都公司建网站
  • 自己做网站有何意义郑州网站建设品牌
  • 网站定制公司推荐phpcms 网站访问统计
  • 做网站推广用优化还是竞价网站建设pdf文件怎么发布
  • 手机网站重要性页面设计文档
  • wordpress 网站建设中东北亚科技园里有做网站的吗
  • 苏州网站网站建设百度怎么发自己的小广告
  • 福建省住房和城乡建设厅网站电话百度广告平台
  • 门户网站手机版网站建设需要哪些方面