迭代器Iterator是一种对象行为型设计模式,目的是提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示,例如C++中的容器及其迭代器,便是这种设计模式的一种体现。 使用迭代器模式,可用来访问一个聚合对象的内容而无需暴露它的内部表示,支持对聚合对象的多种遍历,为遍历不同的聚合结构提供一个统一的接口。
如下是迭代器模式的结构图:
上图中,Iterator迭代器定义访问和遍历元素的接口;ConcreteIterator具体迭代器实现迭代器接口,对该聚合遍历时跟踪当前位置;Aggregate聚合定义创建相应迭代器对象的接口;ConcreteAggregate具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。迭代器模式,它支持以不同的方式遍历一个聚合,简化了聚合的接口,而且在同一个聚合上可以有多个遍历。