中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

游戲攻略網(wǎng)站怎么做互聯(lián)網(wǎng)推廣公司

游戲攻略網(wǎng)站怎么做,互聯(lián)網(wǎng)推廣公司,旅行社erp系統(tǒng),建設網(wǎng)站代理商Java服務定位器模式 實現(xiàn)范例 服務定位器模式(Service Locator Pattern)用于想使用 JNDI 查詢定位各種服務的時候考慮到為某個服務查找 JNDI 的代價很高,服務定位器模式充分利用了緩存技術在首次請求某個服務時,服務定位器在 JNDI…

Java服務定位器模式

    • 實現(xiàn)
    • 范例

  • 服務定位器模式(Service Locator Pattern)用于想使用 JNDI 查詢定位各種服務的時候
  • 考慮到為某個服務查找 JNDI 的代價很高,服務定位器模式充分利用了緩存技術
  • 在首次請求某個服務時,服務定位器在 JNDI 中查找服務,并緩存該服務對象
  • 當再次請求相同的服務時,服務定位器會在它的緩存中查找,這樣可以在很大程度上提高應用程序的性能
  • 以下是這種設計模式的實體:
    • 服務(Service) - 實際處理請求的服務。對這種服務的引用可以在 JNDI 服務器中查找到
    • Context / 初始的 Context - JNDI Context 帶有對要查找的服務的引用
    • 服務定位器(Service Locator) - 服務定位器是通過 JNDI 查找和緩存服務來獲取服務的單點接觸
    • 緩存(Cache) - 緩存存儲服務的引用,以便復用它們
    • 客戶端(Client) - Client 是通過 ServiceLocator 調(diào)用服務的對象

實現(xiàn)

在這里插入圖片描述

  • 創(chuàng)建 ServiceLocator 、 InitialContext 、 Cache 、 Service 作為表示實體的各種對象
  • Service1 和 Service2 表示實體服務
  • ServiceLocatorPatternDemo ,我們的演示類在這里是作為一個客戶端,將使用 ServiceLocator 來演示服務定位器設計模式

范例

1. 創(chuàng)建服務接口 Service

Service.java

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

2. 創(chuàng)建實體服務

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 查詢創(chuàng)建 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. 創(chuàng)建緩存 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. 創(chuàng)建服務定位器 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 范例,輸出結(jié)果如下```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.risenshineclean.com/news/56717.html

相關文章:

  • 網(wǎng)站如何做數(shù)據(jù)庫上海seo優(yōu)化公司 kinglink
  • 網(wǎng)站建設建網(wǎng)站電商網(wǎng)站商品頁的優(yōu)化目標是什么
  • 網(wǎng)站制作需求文檔seo研究中心道一老師
  • 公司建設網(wǎng)站的目的查權重網(wǎng)站
  • flash網(wǎng)站源文件下載樂陵市seo關鍵詞優(yōu)化
  • wordpress網(wǎng)站go.php跳轉(zhuǎn)濰坊網(wǎng)站建設優(yōu)化
  • 網(wǎng)站設計教程dreamweaver專業(yè)網(wǎng)站推廣軟件
  • 衢州做網(wǎng)站多少錢寧波seo公司排名
  • 網(wǎng)站空間有哪些html期末大作業(yè)個人網(wǎng)站制作
  • 做網(wǎng)站有彈窗叫什么seo關鍵詞如何布局
  • wordpress能建論壇嗎seo網(wǎng)站優(yōu)化服務商
  • 怎么制作一個軟件app官網(wǎng)seo優(yōu)化
  • 做系統(tǒng)后怎么找回網(wǎng)站收藏夾營銷官網(wǎng)
  • 大鼠引物在線設計網(wǎng)站朋友圈廣告推廣
  • 做網(wǎng)站收入太低論文收錄網(wǎng)站排名
  • 網(wǎng)站建設制作設計營銷公司四川站長工具站長
  • 正規(guī)網(wǎng)站制作公司哪里有免費網(wǎng)站seo診斷
  • 做網(wǎng)站用php如何學習百度資源搜索平臺官網(wǎng)
  • 做電影小視頻在線觀看網(wǎng)站整合營銷傳播工具有哪些
  • 小程序怎么制作網(wǎng)站電商seo與sem是什么
  • 購物網(wǎng)站技術方案河南鄭州最新消息今天
  • a家獸裝定制網(wǎng)站品牌營銷成功案例
  • 跨境電商獨立站是什么意思湖南網(wǎng)絡推廣公司大全
  • vps上的網(wǎng)站運行太慢查詢網(wǎng)站流量
  • 做日本假貨的在什么網(wǎng)站賣好網(wǎng)站怎么優(yōu)化到首頁
  • 海外推廣工作怎么樣seo排名推廣
  • 手機網(wǎng)站qq咨詢代碼瀏覽器看b站
  • 提供定制型網(wǎng)站建設新聞頭條最新消息今天
  • wordpress mysqlli平臺關鍵詞排名優(yōu)化
  • 全國網(wǎng)站建設公司排名網(wǎng)上銷售培訓課程