迭代器模式
核心思想
- 提供外部访问接口,而不暴露内部对象
 
- 可扩展的遍历方式
 
- 可遍历不同种类的对象
 
类图设计
  
Aggregate:聚集的抽象类 
ConcreteAggregate:具体的聚集类对象,来扩展遍历方式 
Iterator:迭代器对象接口 
Concretelterator:实现迭代器接口 
代码见仓库:https://github.com/dmucby/Design-pattern/tree/master/src/Iterator
Java 中迭代器设计
Iterator 源码
  
接口约定:
ListIterator接口
public interface ListIterator<E> extends Iterator<E> {
    E next();
    boolean hasNext();
    boolean hasPrevious();
    E previous();
    int nextIndex();
    int previousIndex();
    void remove();
    void set(E e);
    void add(E e);
}
Iterator 进一步封装~
- 提供向前遍历,获取前对象
 
- 增加获取
Index方法 
- 增添
set add来授予更多权限