提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
访问一个聚合对象的内容而无需暴露它的内部表示
支持对聚合对象的多种遍历
为遍历不同的聚合结构提供一个统一的接口
Iterator(迭代器)
迭代器定义访问和遍历元素的接口
ConcreteIterator(具体迭代器)
具体迭代器实现迭代器接口
对该聚合遍历时跟踪当前位置
Aggregate(聚合)
聚合定义创建相应迭代器对象的接口
ConcreteAggregate(具体聚合)
具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例
ConcreteIterator跟踪聚合中的当前对象,并能够计算出待遍历的后继对象
它支持以不同的方式遍历一个聚合
迭代器简化了聚合的接口
在同一个聚合上可以有多个遍历
谁控制该迭代
谁定义遍历算法
迭代器健壮程度如何。
附加迭代器操作
在C++中使用多台的迭代器
迭代器可有特权访问
用于符合对象的迭代器
空迭代器
Composite:迭代器常被应用到像复合这样的递归结构上
FactoryMethod:多态迭代器靠FactoryMethod来例化适当的迭代器子类
Memento:常与迭代器模式一起使用,迭代器可使用一个Memento来捕获一个迭代器的状态