迭代器模式
一. 迭代器模式
1.1 定义
- 提供一种方法顺序访问一个集合对象中的各种元素,而又不暴露该对象的内部表示.
1.2 角色
- 抽象迭代器接口(Iterator).
- 具体迭代器(ConcreteIterator).
- 抽象聚合接口(Aggregate).
- 具体聚合(ConcreteAggregate).
二. 具体实现
1.1 创建抽象迭代器接口
public interface Iterator {
Object next();
boolean hasNext();
}
1.2 创建抽象聚合接口
public interface Aggregate {
Iterator iterator();
}
1.3 创建具体聚合及具体迭代器
public class ConcreteAggregate implements Aggregate {
@Override
public Iterator iterator() {
return new ConcreteIterator();
}
private class ConcreteIterator implements Iterator {
@Override
public Object next() {
System.out.println("ConcreteIterator next ...");
return null;
}
@Override
public boolean hasNext() {
System.out.println("ConcreteIterator hasNext ....");
return true;
}
}
}
1.4 调用
public static void main(String[] args) {
Aggregate aggregate = new ConcreteAggregate();
Iterator iterator = aggregate.iterator();
if(iterator.hasNext()){
iterator.next();
}
}
1.5 输出
ConcreteIterator hasNext ....
ConcreteIterator next ...
三. 优缺点
3.1 优点
- 简化了聚合类的接口.
3.2 缺点
- 增加新的聚合类需要增加新的具体迭代器.
四. 源码
https://github.com/Seasons20/DisignPattern.git
END