设计模式学习--迭代器模式
2016-05-23 23:33
344 查看
迭代器模式:提供一种方法循序访问一个容器对象中的各个元素,而又不暴漏该对象的内部表示
迭代器模式又称为游标模式,其源于对容器的访问,比如list map 数组等,我们知道对容器对象的访问必然涉及遍历算法,我们可以将遍历的方法封装找容器中,或者不提供遍历方法. 如果我们将遍历的方法封装到容器中,那么对于容器类来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还有对外提供遍历的接口方法,因为遍历状态的存储问题还不能对同一个容器同时进行对个变量操作,如果我们不提供遍历方法而让使用者自己去实现,又会让容器的内部细节暴漏无疑,正因为如此,跌打模式应运而生,在客户访问类与容器体之间插入一个第三者--迭代器,很好的解决了上述的弊端.
对于迭代模式来说,其自身优点很明显也很单一,支持以不同的方式去遍历一个容器对象,也可以有多个遍历,弱化了容器类与遍历算法之间的关系. 但几乎每一种语言都有相应的内置实现,对于开发者来说,已经极少会由自己来实现迭代器了.
迭代器模式又称为游标模式,其源于对容器的访问,比如list map 数组等,我们知道对容器对象的访问必然涉及遍历算法,我们可以将遍历的方法封装找容器中,或者不提供遍历方法. 如果我们将遍历的方法封装到容器中,那么对于容器类来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还有对外提供遍历的接口方法,因为遍历状态的存储问题还不能对同一个容器同时进行对个变量操作,如果我们不提供遍历方法而让使用者自己去实现,又会让容器的内部细节暴漏无疑,正因为如此,跌打模式应运而生,在客户访问类与容器体之间插入一个第三者--迭代器,很好的解决了上述的弊端.
对于迭代模式来说,其自身优点很明显也很单一,支持以不同的方式去遍历一个容器对象,也可以有多个遍历,弱化了容器类与遍历算法之间的关系. 但几乎每一种语言都有相应的内置实现,对于开发者来说,已经极少会由自己来实现迭代器了.
相关文章推荐
- 创建和使用一个新的系统调用
- 如何在C++中播放音频(几行代码搞定)
- xcode 统计代码行数
- C++11中的线程支持库(Thread support library)
- Day3作业:ha_proxy配置文件修改
- Zookeeper 安装和配置
- 四元数和旋转轴及旋转角度之间的转换理解实例
- python 练习 1
- Android必需了解的东西
- 采用发消息的形式查看网络图片
- Java 基础入门随笔(11) JavaSE版——继承、覆盖、抽象类
- 汉诺塔递归解决方法经典分析
- Bestcoder round#34 解题报告
- ROS探索(2)——仿真器的搭建
- request和response对象
- android插入SQLite中文乱码问题
- 4-Bom&Dom总结篇
- windows,linux,mac生成ssh public key 和 private key
- Android Architecture(Is Activity God?)
- 2016春季练习——矩阵快速幂