首页 19 C#设计模式-迭代器模式

19 C#设计模式-迭代器模式

举报
开通vip

19 C#设计模式-迭代器模式nullDesign PatternsDesign Patterns迭代器模式刘 伟 (Sunny) weiliu_china@126.com大纲大纲 迭代器模式概述 迭代器模式的结构与实现 迭代器模式的应用实例 使用内部类实现迭代器 .NET内置迭代器 迭代器模式的优缺点与适用环境 遥控器迭代器模式概述迭代器模式概述电视机遥控器与电视机示意图迭代器模式概述迭代器模式概述分析 电视机   存储电视频道的集合  聚合类(Aggregate Classes) 电视机遥控器   操作电视频道   ...

19 C#设计模式-迭代器模式
nullDesign PatternsDesign Patterns迭代器模式刘 伟 (Sunny) weiliu_china@126.com大纲大纲 迭代器模式概述 迭代器模式的结构与实现 迭代器模式的应用实例 使用内部类实现迭代器 .NET内置迭代器 迭代器模式的优缺点与适用环境 遥控器迭代器模式概述迭代器模式概述电视机遥控器与电视机示意图迭代器模式概述迭代器模式概述分析 电视机   存储电视频道的集合  聚合类(Aggregate Classes) 电视机遥控器   操作电视频道   迭代器(Iterator) 访问一个聚合对象中的元素但又不需要暴露它的内部结构 迭代器模式概述迭代器模式概述分析 聚合对象的两个职责: 存储数据,聚合对象的基本职责 遍历数据,既是可变化的,又是可分离的 将遍历数据的行为从聚合对象中分离出来,封装在迭代器对象中 由迭代器来提供遍历聚合对象内部数据的行为,简化聚合对象的设计,更符合单一职责原则迭代器模式概述迭代器模式概述迭代器模式的定义 对象行为型模式迭代器模式概述迭代器模式概述迭代器模式的定义 又名游标(Cursor)模式 通过引入迭代器,客户端无须了解聚合对象的内部结构即可实现对聚合对象中成员的遍历,还可以根据需要很方便地增加新的遍历方式 迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的结构 迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的结构 迭代器模式包含以下4个角色: Iterator(抽象迭代器) ConcreteIterator(具体迭代器) Aggregate(抽象聚合类) ConcreteAggregate(具体聚合类)迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的实现 典型的抽象迭代器代码:迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的实现 典型的具体迭代器代码:迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的实现 典型的抽象聚合类代码:迭代器模式的结构与实现迭代器模式的结构与实现迭代器模式的实现 典型的具体聚合类代码:迭代器模式的应用实例迭代器模式的应用实例实例说明迭代器模式的应用实例迭代器模式的应用实例实例类图销售管理系统数据遍历结构图迭代器模式的应用实例迭代器模式的应用实例实例代码 (1) AbstractObjectList:抽象聚合类 (2) ProductList:商品数据类,充当具体聚合类 (3) AbstractIterator:抽象迭代器 (4) ProductIterator:商品迭代器,充当具体迭代器 (5) Program:客户端测试类参考代码 (DesignPattern\IteratorSample)迭代器模式的应用实例迭代器模式的应用实例结果及分析 如果需要增加一个新的具体聚合类,只需增加一个新的聚合子类和一个新的具体迭代器类即可,原有类库代码无须修改,符合开闭原则 如果需要更换一个迭代器,只需要增加一个新的具体迭代器类作为抽象迭代器类的子类,重新实现遍历方法即可,原有迭代器代码无须修改,也符合开闭原则 如果要在迭代器中增加新的方法,则需要修改抽象迭代器的源代码,这将违背开闭原则 使用内部类实现迭代器使用内部类实现迭代器实现 .NET内置迭代器.NET内置迭代器枚举接口:System.Collections.IEnumerable .NET内置迭代器.NET内置迭代器抽象的迭代器接口:System.Collections.IEnumerator .NET内置迭代器.NET内置迭代器分析 ICollection继承自IEnumerable,IList继承自ICollection,而ArrayList是IList的子类,实现了GetEnumerator()方法,并返回一个ArrayListEnumeratorSimple类型的对象 .NET内置迭代器.NET内置迭代器分析 IEnumerable 抽象聚合类 IEnumerator 抽象迭代器 ArrayList 具体聚合类 ArrayListEnumeratorSimple 具体迭代器 .NET内置迭代器.NET内置迭代器应用实例 迭代器模式的优缺点与适用环境迭代器模式的优缺点与适用环境模式优点 支持以不同的方式遍历一个聚合对象,在同一个聚合对象上可以定义多种遍历方式 简化了聚合类 由于引入了抽象层,增加新的聚合类和迭代器类都很方便,无须修改原有代码,符合开闭原则迭代器模式的优缺点与适用环境迭代器模式的优缺点与适用环境模式缺点 在增加新的聚合类时需要对应地增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性 抽象迭代器的设计难度较大,需要充分考虑到系统将来的扩展。在自定义迭代器时,创建一个考虑全面的抽象迭代器并不是一件很容易的事情 迭代器模式的优缺点与适用环境迭代器模式的优缺点与适用环境模式适用环境 访问一个聚合对象的内容而无须暴露它的内部 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示 需要为一个聚合对象提供多种遍历方式 为遍历不同的聚合结构提供一个统一的接口,在该接口的实现类中为不同的聚合结构提供不同的遍历方式,而客户端可以一致性地操作该接口 思考思考扩展.NET中的ArrayList类,自定义一个ReverseArrayList类,要求实现逆向遍历这个类的内部元素。ENDEND
本文档为【19 C#设计模式-迭代器模式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_745769
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2013-06-21
浏览量:20