设计模式(多例)

来源:互联网 发布:目标软件游戏 编辑:程序博客网 时间:2024/06/08 22:57

多例:单例设计模式的变形,可以看成是一个缓存池的单例,而缓存池里面可以存多个数据

//单例+缓存---没有控制池大小public class A {    //1创建一个单例的池private即把池封装成单例了)    private static Map<String, A> pool = new HashMap<String, A>(); //池--集合:  Map:key-value    public synchronized static A getInstance(String key){        //2根据key到池中去获取obj        A obj = pool.get(key);        if(obj==null){            obj = new A();            pool.put(key, obj);        }        //3如果该obj存在则返回,否则创建一个新的放入池中并返回        return obj}}
import java.util.HashMap;import java.util.Map;//单例+缓存---控制池大小,每个对象的key值由该类内部指定public class A {    //1创建一个单例的池    private static Map<Integer, A> pool = new HashMap<Integer, A>(); //池--集合:  Map:key-value    //当前对象的序号    private static int num=0;    //总数量    private static int MAX_SIZE=3;    public synchronized static A getInstance(){        //2根据num到池中去获取obj        A obj = pool.get(num);        if(obj==null){            obj = new A();            pool.put(num, obj);        }        num = (num+1)%MAX_SIZE;  //范围: 0 ~ MAX_SIZE-1        //3如果该obj存在则返回,否则创建一个新的放入池中并返回        return obj;    }}
0 0
原创粉丝点击