19C设计模式-迭代器模式.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
19C设计模式-迭代器模式

www.ChinaSA.info www.ChinaSA.info Design Patterns 迭代器模式 刘 伟 (Sunny) weiliu_china@126.com 大纲 迭代器模式概述 迭代器模式的结构与实现 迭代器模式的应用实例 使用内部类实现迭代器 .NET内置迭代器 迭代器模式的优缺点与适用环境 遥控器 迭代器模式概述 电视机遥控器与电视机示意图 迭代器模式概述 分析 电视机 ? ? 存储电视频道的集合 ? ?聚合类(Aggregate Classes) 电视机遥控器 ? ? 操作电视频道 ? ? 迭代器(Iterator) 访问一个聚合对象中的元素但又不需要暴露它的内部结构 迭代器模式概述 分析 聚合对象的两个职责: 存储数据,聚合对象的基本职责 遍历数据,既是可变化的,又是可分离的 将遍历数据的行为从聚合对象中分离出来,封装在迭代器对象中 由迭代器来提供遍历聚合对象内部数据的行为,简化聚合对象的设计,更符合单一职责原则 迭代器模式概述 迭代器模式的定义 对象行为型模式 迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,且不用暴露该对象的内部表示。 Iterator Pattern: Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. 迭代器模式概述 迭代器模式的定义 又名游标(Cursor)模式 通过引入迭代器,客户端无须了解聚合对象的内部结构即可实现对聚合对象中成员的遍历,还可以根据需要很方便地增加新的遍历方式 迭代器模式的结构与实现 迭代器模式的结构 迭代器模式的结构与实现 迭代器模式的结构 迭代器模式包含以下4个角色: Iterator(抽象迭代器) ConcreteIterator(具体迭代器) Aggregate(抽象聚合类) ConcreteAggregate(具体聚合类) 迭代器模式的结构与实现 迭代器模式的实现 典型的抽象迭代器代码: interface Iterator { void First(); //将游标指向第一个元素 void Next(); //将游标指向下一个元素 bool HasNext(); //判断是否存在下一个元素 object CurrentItem(); //获取游标指向的当前元素 } 迭代器模式的结构与实现 迭代器模式的实现 典型的具体迭代器代码: class ConcreteIterator : Iterator { private ConcreteAggregate objects; //维持一个对具体聚合对象的引用,以便于访问存储在聚合对象中的数据 private int cursor; //定义一个游标,用于记录当前访问位置 public ConcreteIterator(ConcreteAggregate objects) { this.objects = objects; } public void First() { //实现代码 } public void Next() { //实现代码 } public bool HasNext() { //实现代码 } public object CurrentItem() { //实现代码 } } 迭代器模式的结构与实现 迭代器模式的实现 典型的抽象聚合类代码: interface Aggregate { Iterator CreateIterator(); } 迭代器模式的结构与实现 迭代器模式的实现 典型的具体聚合类代码: class ConcreteAggregate : Aggregate { ...... public Iterator CreateIterator() { return new ConcreteIterator(this); } ...... } 迭代器模式的应用实例 实例说明 某软件公司为某商场开发了一套销售管理系统,在对该系统进行分析和设计时,开发人员发现经常需要对系统中的商品数据、客户数据等进行遍历,为了复用这些遍历代码,开发人员设计了一个抽象的数据集合类AbstractObjectList,将存储商品和客户等数据的类

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档