设计模式利剑14-迭代器模式
来源:互联网 发布:美即面膜知乎 编辑:程序博客网 时间:2024/04/29 22:23
定 义:它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对对象的内部细节,,Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。
效果及实现要点
1.迭代抽象:访问一个聚合对象的内容而无需暴露它的内部表示。
2.迭代多态:为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作。
3.迭代器的健壮性考虑:遍历的同时更改迭代器所在的集合结构,会导致问题。
适用性
1.访问一个聚合对象的内容而无需暴露它的内部表示。
2.支持对聚合对象的多种遍历。
3.为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。
应用举例:
先来看看迭代器模式的通用类图:
解释说明:
1、Iterator抽象迭代器:抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的方法,first,next,isDone
2、Aggregate抽象容器:负责提供创建具体迭代器角色的几口,必须提供一个类似createIterator()这样的方法
举个简单的例子,家中的电视机遥控器控制电视,上一个频道,下一个频道,UML图如下:
- 设计模式利剑14-迭代器模式
- 设计模式利剑4-模板方法模式
- 设计模式利剑5-建造者模式
- 设计模式利剑6-代理模式
- 设计模式利剑7-原型模式
- 设计模式利剑8-中介者模式
- 设计模式利剑9-命令模式
- 设计模式利剑10-责任链模式
- 设计模式利剑11-装饰模式
- 设计模式利剑12-策略模式
- 设计模式利剑13-适配器模式
- 设计模式利剑15-组合模式
- 设计模式利剑16-观察者模式
- 设计模式利剑18--备忘录模式
- 设计模式利剑17-门面模式
- 设计模式利剑19--访问者模式
- 设计模式利剑20--状态模式
- 设计模式利剑21--解释器模式
- 出行的好帮手 - Google地图
- 高性能MYSQL读书笔记:MYSQL准备语句
- TCP协议三次握手四次挥手过程分析
- perl今日之新知
- 后台获取datalist每项里的某个控件
- 设计模式利剑14-迭代器模式
- windows mobile 模拟器上网配置(在windows xp下)
- 为什么华为的工程师也要去考公务员???
- 赢在中国对80后的30条忠告
- 学习建站
- 表格(增加行号) http://www.blogjava.net/zeyuphoenix/archive/2010/04/19/318788.html
- 小程序员的大梦想: 唐骏在微软总部的日子
- CORBA_TAO的环境配置
- 对Java中接口的初步理解