已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DesignPatterns 迭代器模式 刘伟 Sunny weiliu china 大纲 迭代器模式概述迭代器模式的结构与实现迭代器模式的应用实例使用内部类实现迭代器 NET内置迭代器迭代器模式的优缺点与适用环境 遥控器 迭代器模式概述 电视机遥控器与电视机示意图 迭代器模式概述 分析电视机 存储电视频道的集合 聚合类 AggregateClasses 电视机遥控器 操作电视频道 迭代器 Iterator 访问一个聚合对象中的元素但又不需要暴露它的内部结构 迭代器模式概述 分析聚合对象的两个职责 存储数据 聚合对象的基本职责遍历数据 既是可变化的 又是可分离的将遍历数据的行为从聚合对象中分离出来 封装在迭代器对象中由迭代器来提供遍历聚合对象内部数据的行为 简化聚合对象的设计 更符合单一职责原则 迭代器模式概述 迭代器模式的定义对象行为型模式 迭代器模式概述 迭代器模式的定义又名游标 Cursor 模式通过引入迭代器 客户端无须了解聚合对象的内部结构即可实现对聚合对象中成员的遍历 还可以根据需要很方便地增加新的遍历方式 迭代器模式的结构与实现 迭代器模式的结构 迭代器模式的结构与实现 迭代器模式的结构迭代器模式包含以下4个角色 Iterator 抽象迭代器 ConcreteIterator 具体迭代器 Aggregate 抽象聚合类 ConcreteAggregate 具体聚合类 迭代器模式的结构与实现 迭代器模式的实现典型的抽象迭代器代码 迭代器模式的结构与实现 迭代器模式的实现典型的具体迭代器代码 迭代器模式的结构与实现 迭代器模式的实现典型的抽象聚合类代码 迭代器模式的结构与实现 迭代器模式的实现典型的具体聚合类代码 迭代器模式的应用实例 实例说明 迭代器模式的应用实例 实例类图 销售管理系统数据遍历结构图 迭代器模式的应用实例 实例代码 1 AbstractObjectList 抽象聚合类 2 ProductList 商品数据类 充当具体聚合类 3 AbstractIterator 抽象迭代器 4 ProductIterator 商品迭代器 充当具体迭代器 5 Program 客户端测试类 演示 参考代码 DesignPattern IteratorSample 迭代器模式的应用实例 结果及分析如果需要增加一个新的具体聚合类 只需增加一个新的聚合子类和一个新的具体迭代器类即可 原有类库代码无须修改 符合开闭原则如果需要更换一个迭代器 只需要增加一个新的具体迭代器类作为抽象迭代器类的子类 重新实现遍历方法即可 原有迭代器代码无须修改 也符合开闭原则如果要在迭代器中增加新的方法 则需要修改抽象迭代器的源代码 这将违背开闭原则 使用内部类实现迭代器 实现 NET内置迭代器 枚举接口 System Collections IEnumerable NET内置迭代器 抽象的迭代器接口 System Collections IEnumerator NET内置迭代器 分析ICollection继承自IEnumerable IList继承自ICollection 而ArrayList是IList的子类 实现了GetEnumerator 方法 并返回一个ArrayListEnumeratorSimple类型的对象 NET内置迭代器 分析IEnumerable抽象聚合类IEnumerator抽象迭代器ArrayList具体聚合类ArrayListEnumeratorSimple具体迭代器 NET内置迭代器 应用实例 迭代器模式的优缺点与适用环境 模式优点支持以不同的方式遍历一个聚合对象 在同一个聚合对象上可以定义多种遍历方式简化了聚合类由于引入了抽象层 增加新的聚合类和迭代器类都很方便 无须修改原有代码 符合开闭原则 迭代器模式的优缺点与适用环境 模式缺点在增加新的聚合类时需要对应地增加新的迭代器类 类的个数成对增加 这在一定程度上增加了系统的复杂性抽象迭代器的设计难度较大 需要充分考虑到系统将来的扩展 在自定义迭代器时 创建一个考虑全面的抽象迭代器并不是一件很容易的事情 迭代器模式的优缺点与适用环境 模式适用环境访问一个聚合对象的内容而无须暴露它的内部表示需要为一个聚合对象提供多种遍历方式为遍历不同的聚合结构提供一个统一的接口 在该接口的实现类中为不同的聚合结构提供不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中、短波广播天线工班组协作模拟考核试卷含答案
- 玻璃制品模具工道德能力考核试卷含答案
- 公共风险管理师工作质量知识考核试卷含答案
- 变电所现场安全工作规程
- 自体输血、围手术期血液保护技术管理制度
- 肝癌护理查房(含用药护理)
- 雨天孔口防护后钢筋笼安装时机
- 2025年水利设施管养人员考试历年真题常考点试题带答案
- 临时消防设施安全检查保证措施
- 2026年疾病控制卫生高级职称考试试题及答案
- 期中达标测试卷(1-4单元试卷)2026-2027学年五年级数学上册人教版(含答案)
- 2026年烟花爆竹零售经营安全考试试题及答案
- 2026年新版药物GCP考试试题及答案
- 2026年人教版新版数学四年级上册第三单元《多位数乘两位数》教学设计
- 2026年秋季开学初三开局即冲刺加油鼓劲课件
- 新教科版科学五年级上册1-1《研究放大镜》教学课件
- 2026年档案副高职称评审题库及答案
- 2026-2027学年统编版九年级语文上册第一单元综合检测卷(含答案)
- 《1 蜡烛的变化》分层作业及答案-2026-2027学年苏教版(新教材)小学科学六年级上册
- 2026第三季度广西一键游数智文旅产业集团有限公司社会招聘12人笔试题库(有一套)附答案详解
- 新版 2026新教材人教PEP版五年级上册英语课文+翻译合集
评论
0/150
提交评论