java设计模式----单例变形(多例)

mport java.util.HashMap;
import java.util.Map;

public class A {
	// 缓存(池)一定要有一个容器,而且这个容器是单例
	private static Map<String, A> map = new HashMap<String, A>();

	// 从池中获取一个对象
    public static A getInstance(String key){
    	//如果池中存在该key对应的value对象,则直接返回出去,若没有则创建一个
    	A obj=map.get(key);
    	if(obj==null){
    		obj=new A();
    		map.put(key, obj);
    	}
    	
    	return  obj;
    	
    }
}

import java.util.HashMap;
import java.util.Map;

public class B {
	// 注入,池
	private static Map<Integer, B> map = new HashMap<Integer, B>();

	private final static int MAX = 3;
	private static int num = 1;

	public static B getInstance() {
		B obj = map.get(num);
		if (obj == null) {
			obj = new B();
			map.put(num, obj);
		}
		num++;
		if (num > MAX) {
			// 根据项目需求,如果想让用户等待,得让它sleep一段时间后再递归调用当前方法...
			// 本例直接写成循环使用
			num = 1;
		}

		return obj;
	}

}

猜你喜欢

转载自blog.csdn.net/lx678111/article/details/79955049