迭代模式
什么是迭代模式
提供一种方法顺序地访问一组聚合对象(一个容器)中地各个元素,而又不需要暴露该对象地内部细节
设计思想
迭代模式又称迭代器模式。迭代器其实就是一个指向容器中当前元素地指针,这个指针可以返回当前所指向地元素,可以移到下一个元素的位置,通过这个指针可以遍历容器中的所有元素,一般至少有两个方法:
- 获取当前指向的元素:current()
- 指针移向下一个元素:next()
设计要点
- 了解容器的数据结构及可能的层次结构
- 根据需要确定迭代器要实现的功能,如next()、previous()、current()、toBegin()、toEnd()中的一个或多个
优缺点
优点:
- 迭代器模式将存储数据和遍历数据的职责分离
- 简化了聚合数据的访问方式
- 可支持多种不同方式遍历一个聚合对象
缺点:
需要额外增加迭代器的功能实现,增加新的聚合类,可能需要增加新的迭代器
应用场景
- 集合的内部结构复杂,不想暴露对象的内部细节,只提供精简的访问方式。
- 需要提供统一的访问接口,从而对不同的集合使用统一的算法
- 需要为一些列聚合对象提供多种不同的访问方式