迭代器模式是一种遍历集合的常见设计模式。该方式提供一种顺序访问集合对象的方法,无需知道集合内部具体表示。这种设计模式是将集合与迭代器分开,简化了集合类,遍历集合对象,只需要在迭代器上进行操作。
迭代器模式支持多种遍历模式,增加新的集合类与迭代器都很方便,无需修改原有代码。但是缺点是,需要同时增加集合类与迭代器两个类,这在一定程度上增加了系统的复杂性,因为集合与迭代器的职责是分开的。
迭代器模式,就是将集合的遍历行为分开,抽象出一个迭代器来负责遍历,这样不仅可以不用暴露集合内部结构表示,还可以提供一个透明的方式访问集合内部数据。
这里通过代码实现迭代器模式的例子,先给出接口类关系图:
集合接口:Collection.java
package com.xxx.design.iterator;
public interface Collection {
public Iterator iterator();
public Object get(int index);
public int size();
}
迭代器接口:Iterator.java
package com.xxx.design.iterator;
public interface Iterator {
public Object prev();
public Object next();
public boolean hasNext();
public Object first();
}