迭代器模式(Iterator)
意图:
提供一个中顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
适用性:
迭代器模式可用来:
1)访问一个聚合对象的内容而无需暴露它的内部表示
2)支持对聚合对象的多种遍历
3)为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)
效果:
迭代模式有三个重要的作用:
1)它支持以不同的方式遍历一个聚合
2)迭代器简化了聚合的接口
3)在同一个聚合上可以有多个遍历
实现:
迭代器在实现上有许多变化和选择. 下面是一些较重要的实现. 实现迭代器模式时
常常需要根据所使用的语言提供的控制结构类权衡.
1)谁控制该迭代
2)谁定义遍历算法
3)迭代器健壮程度如何
4)附加的迭代器操作
5)在C++中使用多态的迭代器
6)迭代器可有特权访问
7)用于复合对象的迭代器
意图:
提供一个中顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
适用性:
迭代器模式可用来:
1)访问一个聚合对象的内容而无需暴露它的内部表示
2)支持对聚合对象的多种遍历
3)为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)
效果:
迭代模式有三个重要的作用:
1)它支持以不同的方式遍历一个聚合
2)迭代器简化了聚合的接口
3)在同一个聚合上可以有多个遍历
实现:
迭代器在实现上有许多变化和选择. 下面是一些较重要的实现. 实现迭代器模式时
常常需要根据所使用的语言提供的控制结构类权衡.
1)谁控制该迭代
2)谁定义遍历算法
3)迭代器健壮程度如何
4)附加的迭代器操作
5)在C++中使用多态的迭代器
6)迭代器可有特权访问
7)用于复合对象的迭代器
8)空迭代器