设计模式---迭代器模式

迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

public interface Iterator<T> {

    public T next();

    public boolean isDone();

    public T currentItem();

}
public class ConcreteIterator implements Iterator {
    private ConcreteComponent component;
    private int current = 0;

    public ConcreteIterator(ConcreteComponent component) {
        this.component = component;
    }

    @Override
    public Object next() {
        Object res = null;
        current++;
        if (current < component.size()) {
            res = component.get(current);
        }
        return res;
    }

    @Override
    public boolean isDone() {
        return current >= component.size() ? true : false;
    }

    @Override
    public Object currentItem() {
        return component.get(current);
    }
}
public interface Component {
    public Iterator createIterator();
}
public class ConcreteComponent extends ArrayList implements Component{
    @Override
    public Iterator createIterator() {
        return new ConcreteIterator(this);
    }
    public int getCount(){
        return this.size();
    }
}
public class IteratorDemo {
    public static void main(String[] args) {
        ConcreteComponent component = new ConcreteComponent();
        component.add("AAA");
        component.add("BBB");
        component.add("CCC");

        Iterator iterator = new ConcreteIterator(component);

        while (!iterator.isDone()) {
            System.out.println("当前:" + iterator.currentItem());
            iterator.next();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37039331/article/details/87971071