@songying
2018-07-04T14:57:34.000000Z
字数 613
阅读 1158
设计模式
迭代器模式目前已经是一个没落的模式,没有人会单独写一个迭代器。
它提供一种方法访问容器对象中的各种元素,而又不需暴露该对象的内部细节。迭代器是为容器服务的。
在迭代器模式中,容器只要管理增减元素就可以了,需要遍历时交由迭代器进行。
Iterator 抽象迭代器
抽象迭代器负责访问和遍历元素的接口,而且基本上是有固定的3个方法: first()获取第一个元素, next()访问下一个元素, isDone()是否已经访问到底部。
ConcreteIterator 具体迭代器
具体迭代器角色要实现迭代器接口,完成容器元素的遍历。
Aggregate 抽象容器
容器角色负责提供创建具体迭代器角色的接口,必然提供一个类似 createIterator()这样的方法,在Java中一般是iterator方法。
Concrete Aggregate 具体容器
具体容器实现容器接口定义的方法,创建出容纳迭代器的对象。
public interface Iterator {
//遍历到下一个元素
public Object next();
//是否已经遍历到尾部
public boolean hasNext();
//删除当前指向的元素
public boolean remove();
}
如果是开发者,尽量不要自己写迭代器模式,使用java提供的Iterator就能满足要求了。