一、UML类图
二、代码示例
public class Client {
public static void main(String[] args) {
Aggregate aggregate = new ConcreteAggregate();
Iterator iterator = aggregate.iterator();
}
}
public interface Iterator {
boolean hasNext();
Object next();
}
public class ConcreteIterator implements Iterator{
private Aggregate aggregate = null;
public ConcreteIterator(Aggregate aggregate) {
this.aggregate = aggregate;
}
@Override
public boolean hasNext() {
return true;
}
@Override
public Object next() {
return null;
}
}
public interface Aggregate {
Iterator iterator();
}
public class ConcreteAggregate implements Aggregate{
@Override
public Iterator iterator() {
return new ConcreteIterator(this);
}
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - Iterator(迭代器):
该角色负责定义按顺序逐个遍历元素的接口。 - ConcreteIterator(具体的迭代器):
该角色负责实现Iterator所定义的接口,并包含了遍历集合所必须的信息。 - Aggregate(集合):
该角色负责定义创建Iterator角色接口。 - ConcreteAggregate(具体的集合):
该角色负责实现Aggregate角色所定义的接口,会创建出具体的Iterator角色。