多例模式通常被划分为:有上限多例模式、无上限多例模式。
平时我们通过new一个对象的就是无上限多例模式。
什么叫有上限多例模式,其实就是单例模式的推广,创建>1个的实例(有限)。
代码描述:
<span style="font-size:18px;">public class Case {
//保存有限个类的实例
private static ArrayList<Case> caseList=new ArrayList<Case>();
//创建实例的个数
private static final int MAX_NUM=2;
/*
* 在类初试化阶段执行静态初始化快
*/
static{
for(int i=0;i<MAX_NUM;i++){
caseList.add(new Case());
}
}
//私有方法
private Case(){
}
//定义static,类所有
public static Case getCase(){
Random random=new Random();
int count=random.nextInt(MAX_NUM);
return caseList.get(count);
}
}</span>
在上面代码中,通过静态初始化块创建了有限个类的实例,通过geCase()方法随机获取实例。
如果我们不想通过随机获取实例,而是指定第几个实例的话,可以参看下面的代码:
<span style="font-size:18px;">public class Case {
//保存有限个类的实例
private static ArrayList<Case> caseList=new ArrayList<Case>();
//创建实例的个数
private static final int MAX_NUM=2;
/*
* 在类初试化阶段执行静态初始化快
*/
static{
for(int i=0;i<MAX_NUM;i++){
caseList.add(new Case());
}
}
//私有方法
private Case(){
}
//定义static,类所有
public static Case getCase(final int index){
if(index<MAX_NUM&&index>=0){
return caseList.get(index);
}
return null;
}
}</span>
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42207289 情绪控_