行为型--迭代器模式
来源:互联网 发布:芒果tv2016旧版 mac 编辑:程序博客网 时间:2024/05/21 06:23
迭代器模式也是一个我们在写程序时经常用到的,特别是在java中已经封装好了,我们可以通过集合对象实例来调用。
模式意图
提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴漏该对象内部表示。
模式适用性
在设计程序时,我们希望无论何种集合,应当允许程序以一种统一的方式遍历集合中的对象,而不需要知道这些对象在集合中是如何表示及存储的。
模式参与者
- 集合(Aggregate):一个接口,规定了具体集合需实现的操作。
- 具体集合(ConcreteAggregate):具体集合是实现集合接口的类的实例,具体集合按着一定的结构存储对象。
- 迭代器(Iterator):一个接口,规定了遍历具体集合的方法。
- 具体迭代器(Concrete Iterator):实现迭代器接口的类的实例。
在java中collection提供的List、Set等的集合实现了迭代器接口,它们就是一个应用迭代器模式的很好地例子。
迭代器(Iterator):Iterator.java
public interface Iterator { public Object first(); public Object next(); public Object currentItem(); public boolean isDone();}
具体迭代器(ConcreteIterator):ConcreteIterator.java
public class ConcreteIterator implements Iterator{ private int currentIndex = 0; private Vector vector = null; public ConcreteIterator(final Vector vector) { this.vector = vector; } @Override public Object first() { currentIndex = 0; return vector.get(currentIndex); } @Override public Object next() { currentIndex++; return vector.get(currentIndex); } @Override public Object currentItem() { return vector.get(currentIndex); } @Override public boolean isDone() { if (currentIndex >= this.vector.size() - 1) { return true; } else { return false; } }}
优点
- 用户使用迭代器访问集合中的对象,而不需要知道这些对象在集合中是如何表示及存储的。
- 用户可以同时使用多个迭代器遍历一个集合。
0 0
- 行为型--迭代器模式
- 迭代器模式(行为型)
- 行为型模式--迭代器模式
- 行为型模式-迭代器模式
- 设计模式 - 行为型模式 - 迭代器模式
- 设计模式->行为型模式->迭代器模式
- Iterator迭代器(行为型模式)
- 行为型模式-迭代器interator
- 迭代器模式(行为型)
- 行为型模式-迭代器(iterator)
- 设计模式--行为型--迭代器模式
- 行为型模式-----迭代器模式(Iterator)
- [设计模式-行为型]迭代器模式(Iterator)
- 行为型模式3:迭代器模式
- (行为型模式八)迭代器模式
- 行为型模式-Iterator ( 迭代器模式 )
- 设计模式-行为型之迭代器模式
- 行为型设计模式-迭代器模式
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- java collection大概
- Spring 资源访问
- 【分享】WeX5的正确打开方式(6)——数据组件初探
- Android Studio下使用AIDL创建和使用远程service
- 行为型--迭代器模式
- IDirect3DDevice9::Present函数
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- 安装SQL2008 R2出现 chould not open key:unknown\components
- Linux GCC常用命令
- 基于historyAPI的PC图墙无刷新跳转功能
- 面向对象设计常见问题
- cmake:在Makefile中运行ant脚本
- cocos2dx源码分析:事件派发器EventDispatcher