迭代器模式

迭代器模式的定义如下:

Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

提供一种顺序访问容器元素的方式,同时不暴露其内部底层的实现细节。

根据定义我们也可以知道,迭代器模式是为容器服务的。那么什么是容器呢?能容纳对象的所有类型我们可以统称为容器。

迭代器模式的通用类图如下:

9.png

各个角色分析如下:

1、Iterator抽象迭代器:抽象迭代器一般是接口,定义对元素的遍历行为,一般如获取第一个元素,获取下一个元素,判断是否还有下一个元素

2、ConcreteIterator具体迭代器:对抽象迭代器定义的接口进行实现,完成对元素的遍历操作

3、Aggregate抽象容器:抽象容器定义迭代器的创建接口,同时作为容器,还要定义对元素的增加、删除接口

4、ConcreteAggregate:具体容器,负责实现抽象容器定义的接口。

迭代器模式的优点:

对容器内元素的访问统一进行了封装,不用关心内部实现细节,对用户来说是透明的

注意:

由于现在java中的容器基本jdk已经都实现了自己的迭代器,所以基本没有开发人员专门来写迭代器了。

你可能感兴趣的:(迭代器模式)