迭代器模式

迭代器模式

目录导航

意图

提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示

适用性

访问一个聚合对象的内容而无需暴露它的内部表示

支持对聚合对象的多种遍历

为遍历不同的聚合结构提供一个统一的接口

参与者

Iterator(迭代器)

迭代器定义访问和遍历元素的接口

ConcreteIterator(具体迭代器)

具体迭代器实现迭代器接口

对该聚合遍历时跟踪当前位置

Aggregate(聚合)

聚合定义创建相应迭代器对象的接口

ConcreteAggregate(具体聚合)

具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例

协作

ConcreteIterator跟踪聚合中的当前对象,并能够计算出待遍历的后继对象

效果

它支持以不同的方式遍历一个聚合

迭代器简化了聚合的接口

在同一个聚合上可以有多个遍历

实现

谁控制该迭代

谁定义遍历算法

迭代器健壮程度如何。

附加迭代器操作

在C++中使用多台的迭代器

迭代器可有特权访问

用于符合对象的迭代器

空迭代器

相关模式

Composite:迭代器常被应用到像复合这样的递归结构上

FactoryMethod:多态迭代器靠FactoryMethod来例化适当的迭代器子类

Memento:常与迭代器模式一起使用,迭代器可使用一个Memento来捕获一个迭代器的状态

相关百科
返回顶部
产品求购 求购