public class NewClassCount {
private static final SingleClassIterator instances = new SingleClassIterator();
private NewClassCount(){
}
public static NewClassCount getInstance(){
return instances.next();
}
private static class SingleClassIterator{
private static final int newClassNumber = 4;//实例化次数
private NewClassCount[] newClassCountArray = new NewClassCount[newClassNumber];
private int counter;//实例计数器
public SingleClassIterator() {
//创建有限个实例对象,保存数组中
for(int i = 0; i < newClassNumber; i++){
newClassCountArray[i] = new NewClassCount();
}
}
public NewClassCount next(){
//若实例次数=最大数量,计数器设置为0
if(counter == newClassNumber){
counter = 0;
}
NewClassCount instance = newClassCountArray[counter];
System.out.println("counter=" + counter);
counter++;
return instance;
}
}
public static void main(String[] args) {
NewClassCount.getInstance();
NewClassCount.getInstance();
NewClassCount.getInstance();
NewClassCount.getInstance();
NewClassCount.getInstance();
NewClassCount.getInstance();
}
输出:
counter=0
counter=1
counter=2
counter=3
counter=0
counter=1