📅  最后修改于: 2023-12-03 14:43:03.060000             🧑  作者: Mango
迭代器模式是一种常用的设计模式,它提供了一种可以访问聚合对象元素的方式,而不用暴露聚合对象的内部表示。
迭代器模式通常适用于以下情况:
迭代器模式通常包含以下几个角色:
具体实现可以参考下面的代码示例:
// 抽象聚合类
interface Aggregate {
Iterator createIterator();
}
// 具体聚合类
class ConcreteAggregate implements Aggregate {
private List<Object> list = new ArrayList<>();
public void add(Object obj) {
list.add(obj);
}
public void remove(Object obj) {
list.remove(obj);
}
public Object get(int index) {
return list.get(index);
}
public int getSize() {
return list.size();
}
@Override
public Iterator createIterator() {
return new ConcreteIterator(this);
}
}
// 抽象迭代器
interface Iterator {
Object first();
Object next();
boolean hasNext();
}
// 具体迭代器
class ConcreteIterator implements Iterator {
private ConcreteAggregate aggregate;
private int index = 0;
public ConcreteIterator(ConcreteAggregate aggregate) {
this.aggregate = aggregate;
}
@Override
public Object first() {
return aggregate.get(0);
}
@Override
public Object next() {
Object obj = null;
index++;
if (index < aggregate.getSize()) {
obj = aggregate.get(index);
}
return obj;
}
@Override
public boolean hasNext() {
return index < aggregate.getSize() - 1;
}
}