您的位置:首页 > 其它

4.3 《硬啃设计模式》 第20章 集合访问的烦恼 - 迭代器模式(Iterator Pattern)

2013-11-10 18:42 363 查看
程序中可能会用很多方式管理集合,如数组、collection、list、hashtable等,这些集合之间进行数据交换就麻烦了,因为大家保存方式不一样。
如果规定大家都要使用hashtable,这样本来没有使用hashtable的程序将要大改!
你有什么好办法来解决这个问题?

设计分析:
集合保存的方式确实有很多,如果我们能做到不管内部怎样的保存方式,只要对外能提供一致的集合访问接口,问题就可以解决了。那应该如何定义这个对外的集合访问接口呢?

我们看看迭代器模式的类图:


 

说明:
1.迭代器IIterator就是这个集合访问的通用接口,该通用接口至少应具备让外部程序可遍历各元素的条件。IIterator定义了IsEnd()和Next()方法,具备了遍历的最小条件了,具体应用时可增加和修改这些方法。
2.对于某集合来说,只需要提供Iterator供外部访问,而不需要暴露集合的内部实现方式。
3.采用迭代器模式还有一个好处,就是可以提供多个迭代器供外部访问,如升序迭代器、降序迭代器、或者是具备某些筛选条件的迭代器等。
4.迭代器往往还会与组合模式配合使用,使之可以遍历树结构。

 请看下一文……  作者:张传波创新工场创业课堂(敏捷课程)讲师软件研发管理资深顾问CMMI首席专家《火球——UML大战需求分析》作者www.umlonline.org创办人
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: