迭代器模式 Iterator 行为型 设计模式(二十)

 迭代器模式(Iterator)

image_5c11cddc_d4
 
走遍天下,世界那么大,我想去看看
 
image_5c11cddc_5f0c
在计算机中,Iterator意为迭代器,迭代有重复的含义,在程序中,更有“遍历”的含义
如果给定一个数组,我们可以通过for循环来遍历这个数组,这种遍历就叫做迭代
对于数组这种数据结构,我们称为是可迭代的
所以
迭代器就是可以用来对于一个数据集合进行遍历的对象
原文地址:image_5c11cddc_779f
抽象迭代器角色Iterator
定义遍历元素所需要的接口
具体的迭代器ConcreteIterator
实现了Iterator接口,并且跟踪当前位置
抽象集合容器角色Aggregate
定义创建相应迭代器的接口(方法)
就是一个容器类,并且定义了一个返回迭代器的方法
具体的容器角色ConcreteAggregate
Aggregate的子类,并且实现了创建Iterator对象的接口,也就是返回一个ConcreteIterator实例
客户端角色Client
持有容器对象以及迭代器对象的引用,调用迭代对象的迭代方法遍历元素
 
迭代器模式中,通过一个外部的迭代器来对容器集合对象进行遍历。
迭代器定义了遍历访问元素的协议方式。
容器集合对象提供创建迭代器的方法。

示例代码

Aggregate角色
提供了iterator()获取Iterator
复制代码
package iterator; public abstract class Aggregate { abstract Iterator iterator(); abstract Object get(int index); abstract int size(); }
复制代码
ConcreateAggregate角色
内部使用一个Object数组,数组直接通过构造方法传递进去(只是为了演示学习模式,不要纠结这算不上一个容器)
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信