servicewrapper.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 58 行

JAVA
58
字号
/* 
 * Created on 2007-1-18
 * Last modified on 2008-1-1
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.service;

import com.yeqiangwei.cache.Cache;
import com.yeqiangwei.club.cache.CacheRegion;
import com.yeqiangwei.cache.singleton.CacheFactory;

import org.apache.log4j.Logger;
import com.yeqiangwei.util.Validator;


public class ServiceWrapper<ServiceObj>{
	
	private static final Logger logger = Logger.getLogger(ServiceWrapper.class);

	private static int HIT = 0;
	
	static class ServiceSingleton<ServiceObj> {
		static <ServiceObj> ServiceObj getService(String locator) {
			return ServiceWrapper.<ServiceObj>getServiceManager().getService(locator);
		} 
	}      
	
	public static<ServiceObj> ServiceObj getServiceInstance(String locator) { 
		return ServiceWrapper.<ServiceObj>getSingletonInstance(locator);
	}
	
	public static<ServiceObj> ServiceObj getSingletonInstance(String locator) { 
		Cache<ServiceObj> CACHE_SERVICE = CacheFactory.<ServiceObj>creator(CacheRegion.SERVICE);
		ServiceObj service = CACHE_SERVICE.get(locator);
		if(Validator.isEmpty(service)){
			service = ServiceSingleton.<ServiceObj>getService(locator);
			CACHE_SERVICE.put(locator,service);
			HIT = 0;
		}else{
			HIT++;
		}
		return service;
	}  
	
	public static<ServiceObj> ServiceManager<ServiceObj> getServiceManager() {
		Cache<ServiceManager<ServiceObj>> CACHE_SM =  CacheFactory.<ServiceManager<ServiceObj>>creator(CacheRegion.SERVICE);
		ServiceManager<ServiceObj> SERVICE_MANAGER = CACHE_SM.get("com.yeqiangwei.club.service.ServiceManager");
		if(Validator.isEmpty(SERVICE_MANAGER)){
			SERVICE_MANAGER = new ServiceImpl<ServiceObj>();
			CACHE_SM.put("com.yeqiangwei.club.service.ServiceManager",SERVICE_MANAGER);
			logger.info("create: com.yeqiangwei.club.service.ServiceManager");
		}
		return SERVICE_MANAGER;
	}
	
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?