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); } }
1、该管理对象仍能够避过工厂进行创建,如果只能通过工厂进行创建,可否实现?
2、工厂中数据中心缓存的声明能否使用static关键字,有何影响?
private static Map<String,DataCenter> dataCenterCache = new HashMap<String,DataCenter>();
时间: 2024-10-11 12:53:34