迭代器模式
核心思想
- 提供外部访问接口,而不暴露内部对象
- 可扩展的遍历方式
- 可遍历不同种类的对象
类图设计
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来授予更多权限