单例模式结合享元模式的使用
1、创建被管理的对象
public class DataCenter { private String name; public DataCenter(String name) { this.name = name; } public String getName() { return this.name; } }
2、创建工厂类负责对外提供管理对象
import java.util.HashMap; import java.util.Map; public class DataCenterFactory { /** * 数据中心缓存 */ private Map<String,DataCenter> dataCenterCache = new HashMap<String,DataCenter>(); /** * 私有构造器 */ private DataCenterFactory() { } /** * 由静态内部类维护单例 * @author admin * */ private static class SingletonHolder { private static DataCenterFactory instance = new DataCenterFactory(); } public static DataCenterFactory getInstance() { return SingletonHolder.instance; } /** * 对外提供数据中心缓存 * @param name * @return */ public DataCenter getDataCenter(String name) { if(null == dataCenterCache.get(name)) { dataCenterCache.put(name,new DataCenter(name)); } return dataCenterCache.get(name); } }