意图
提供一种方法访问一个容器【聚合】(Container)对象中的各个元素,而不需暴露该对象的内部细节。
适用性
迭代器模式可用来:
1. 访问一个聚合对象的内容而无需暴露它的内部表示。
2. 支持对聚合对象的多种遍历
3. 为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代)
结构
参与者
Iterator
- 迭代器定义访问和遍历元素的接口
ConcreteIterator
- 具体迭代器实现迭代接口
- 对该聚合遍历时跟踪当前位置
Aggregate(Container)
- 聚合定义创建相应迭代器对象的接口
ConcreteAggregate(ConcreteContainer)
- 具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。