欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-26 09:18:41
...

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;
	}

}