多例模式通常被划分为:有上限多例模式、无上限多例模式。
平时我们通过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
情绪控_
时间: 2024-10-31 19:19:43