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