迭代器模式是一种行为型设计模式,它提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式将遍历元素的责任从聚合对象中分离出来。
// 迭代器接口
public interface Iterator {
boolean hasNext();
T next();
}
// 聚合接口
public interface Aggregate {
Iterator createIterator();
}
// 具体迭代器
public class ConcreteIterator implements Iterator {
private List items;
private int position = 0;
public ConcreteIterator(List items) {
this.items = items;
}
@Override
public boolean hasNext() {
return position < items.size();
}
@Override
public T next() {
return items.get(position++);
}
}
// 具体聚合类
public class ConcreteAggregate implements Aggregate {
private List items = new ArrayList<>();
public void addItem(T item) {
items.add(item);
}
@Override
public Iterator createIterator() {
return new ConcreteIterator<>(items);
}
}