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