您的位置:首页 > 其它

单例模式结合享元模式的使用

2015-09-24 22:41 295 查看
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>();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: