单例模式主要就是为了节约资源,如果不够用呢?需要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; } }