设计模式之迭代器模式
迭代器是一种行为模式,它提供一种顺序访问聚合对象元素的方法,而不会暴露其基础表示。
应用场景
- 指向访问集合对象内容,而不暴露其内部实现。
- 可以对集合对象多次遍历
- 为不同集合对象提供统一的遍历接口
模式结构
迭代器模式大致分为四个角色:抽象容器,具体容器,抽象迭代器,具体迭代器。结构图如下:
容器一般为一种数据结构的类,例如list、map。 迭代器是提供遍历这个数据结构的方法的类。
代码
在java中提供很多Iterator的模式。例如
1 | public class example { |
这里的ArrayList
类中实现类Iterator
接口的内部类,并且使用iterator()
方法调用new Itr();
,具体内容可以查看ArrayList源码。
下面自己实现一个简单的Iterator
.
第一部分:抽象迭代器
1 | public interface Iterator<E> { |
第二部分:抽象容器类
1 | public interface Task { |
第三部分:实现类
1 | public class MyTask implements Task { |
客户端调用
1 | public class App { |
简单而强大的迭代器模式。