设计模式(18) 迭代器模式(简单入门 行为模式)
来源:互联网 发布:专业淘宝食品图片拍摄 编辑:程序博客网 时间:2024/05/18 01:22
设计图和源代码请访问我的github:https://github.com/yangsheng20080808/DesignModel
From Now On,Let us begin Design Patterns。
迭代器模式
定义
- 它提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
这个模式希望达到的效果是:我们可以自行拓展需要遍历的对象,添加其他的分支,而不用修改客户端和其他任何地方,就能够遍历我们的数据结构。
通用类图:
迭代器模式的优点:
它支持以不同的方式遍历一个聚合对象。
迭代器简化了聚合类。遍历的逻辑已经独立到另外一个类里面了,集合类只需要关系内部结构即可。
在迭代器模式中,增加新的聚合类和迭代器类都很方便,可以方便的添加分支集合,无须修改原有代码。
迭代器模式的缺点:
- 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。
迭代器模式的使用场景:
访问一个聚合对象的内容而无须暴露它的内部表示。
需要为聚合对象提供多种遍历方式。我们只需要实现多个具体的遍历方式用同一个接口。
为遍历不同的聚合结构提供一个统一的接口。
迭代器模式的注意事项:
这个没什么好注意的,很好的一个模式。用就行。
迭代器模式的例子:
我借用《Head first 设计模式》里面的例子给大家分享一下:
具体的菜单项, ArrayList和数组的基本元素.
菜单接口(interface), 包含创建迭代器(createIterator)的方法.
ArrayList类型的早餐菜单, 包含迭代器的方法, 可以直接返回.
晚餐菜单,数组类型, 创建相应的迭代器类, 继承(implements)迭代器(Iterator), 重写迭代器的方法.
实现迭代器:
服务员拿着菜单接客:
饭店里面吃饭:
阅读全文
0 0
- 设计模式(18) 迭代器模式(简单入门 行为模式)
- 设计模式(20) 访问者模式(简单入门 行为模式)(转载)
- 设计模式(06) 模板方法模式(简单入门 行为模式)
- 设计模式(14) 策略模式(简单入门 行为模式)
- 设计模式(15) 命令模式(简单入门 行为模式)
- 设计模式(16) 中介者模式(简单入门 行为模式)
- 设计模式(17) 责任链模式(简单入门 行为模式)
- 设计模式(19) 状态模式(简单入门 行为模式)
- 设计模式(21) 解释器模式(简单入门 行为模式)
- 设计模式(22) 备忘录模式(简单入门 行为模式)
- 设计模式(23) 观察者模式(简单入门 行为模式)
- 设计模式,行为模式(观察者模式)
- 设计模式笔记(18)---迭代器模式(行为型)
- 设计模式(迭代器模式)----- 行为型模式
- 设计模式,行为方法模式(迭代器模式)
- Java设计模式之行为型模式(迭代器模式)
- 设计模式之行为模式(二)
- 设计模式-行为模式(读书笔记)
- ES6中新增数组方法与ES5之间的区别
- uva 679 小球下落
- 递归实现二叉树
- python scrapy爬虫爬取图片简易方法,使用Images模块
- Oracle数据库之SQL子查询详解
- 设计模式(18) 迭代器模式(简单入门 行为模式)
- 网络编程~epoll
- OVS笔记
- 数据库分类介绍
- Java购物车
- eclipse下创建maven项目
- lombok实战
- (理论篇)温故而知新_PHP入门基础教程
- 有道云笔记markdown的换行