定义
使用场景
UML图
代码实现
public class Aggregate {
private int[] elements;
private int last;
public Aggregate(int size) {
this.elements = new int[size];
}
public int getLength(){
return last;
}
public void addElement(int value){
elements[last] = value;
last++;
}
public int getElement(int index){
return elements[index];
}
public Iterator getIterator(){
return new ConcreteIterator(this);
}
}
public interface Iterator<T> {
public boolean hasNext();
public T next();
}
public class ConcreteIterator implements Iterator {
private Aggregate aggregate;
private int index;
public ConcreteIterator(Aggregate aggregate) {
this.aggregate = aggregate;
this.index = 0;
}
@Override
public boolean hasNext() {
return index < aggregate.getLength();
}
@Override
public Object next() {
int element = aggregate.getElement(index);
index++;
return element;
}
}
public class Client {
public static void main(String[] args) {
Aggregate aggregate = new Aggregate(10);
for (int i=10;i>0;i--){
aggregate.addElement(i);
}
Iterator iterator = aggregate.getIterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
总结