单例模式主要就是为了节约资源,如果不够用呢?需要2个或者3个实列或者需要配置的几个才够用呢?
可以使用缓存嘛,缓存数据的容易(一般来说都是集合)
代码:
/**这里假设需要控制产生3个实例,实例个数可以通过配置文件配置,这里不再累赘
关于多线程可以同步方法,同步代码块和手动加锁,解锁来控制(不累赘)
*/
public class ThreeInstance{
private ThreeInstance(){}
private static Map map=new HashMap();
//记录正在使用的实例为初始的第一个
private static int num=1;
//可以产生的实例总算为3(具体多少可以通过配置文件来读取)
private static int count=3;
public static ThreeInstancegetInstance(){
ThreeInstance s=(ThreeInstance)map.get(num);
if(s==null){
s=new ThreeInstance();
map.put(num, s);
}
//每调用一次+1
num++;
if(num>count){
num=1;
}
return s;
}
}