4.4 迭代器
迭代器
概念
意图
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
结构

参与者
Iterator
- 迭代器定义访问和遍历元素的接口。
ConcreteIterator
具体迭代器实现迭代器接口。
对该聚合遍历时跟踪当前位置。
Aggregate
- 聚合定义创建相应迭代器对象的接口。
ConcreteAggregate
- 具体聚合实现创建相应迭代器的接口,该操作返回 ConreteIterator 的实例。
适用性
在以下情况下可以使用 Iterator 模式:
访问一个聚合对象的内容而无需暴露它的内部表示。
支持对聚合对象的多种遍历。
为遍历不同的聚合结构提供一个统一的接口。
效果
它支持以不同的方式遍历一个聚合。
迭代器简化了聚合的接口。
在同一个聚合上可以有多个遍历。
相关模式
Iterator 常被应用到 Composite 这样的递归结构上。
可以使用 Factory Method 模式来实例化多态迭代器。
Iterator 可以使用 Memento 来捕获一个迭代的状态,在内部存储 Memento。
Implementation
1 | public interface Aggregate { |
1 | public class ConcreteAggregate implements Aggregate { |
1 | public interface Iterator<Item> { |
1 | public class ConcreteIterator<Item> implements Iterator { |
1 | public class Client { |
JDK
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!










