迭代器模式

1.迭代器模式

迭代器模式(Iterator Pattern)用于顺序访问集合对象的元素,不需要知道集合对象的底层表示,属于行为型模式。

把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码为定义迭代器的接口:hasNext, next。

2.试验Demo

interface Iterator {
    public boolean hasNext();
    public Object next();
}

class NameIterator implements Iterator {
    private int index;
    private String array[];

    public NameIterator(String[] array) {
        this.array = array;
    }

    public boolean hasNext() {
        if (index < array.length) { //length是个成员变量,不加()
            return true;
        } else {
            return false;
        }
    }

    public Object next() {
        if(hasNext()) {
            return array[index++];
        } else {
            return null;
        }
    }
}


interface Container {
    public Iterator getIterator();
}


class NamePropersity implements Container {
    private String array[];

    public NamePropersity(String array[]) { //通过构造函数将Propersity和Iterator关联起来
        this.array = array;
    }

    public Iterator getIterator() {
        return new NameIterator(array);
    }
}


public class IteratorPatternDemo {
    public static void main(String args[]) {
        String names[] = {"AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH"};
        Container container = new NamePropersity(names);

        /*面向对象编程就不只是从参数传参了,可以直接是某个对象进行调用*/
        for (Iterator iterator = container.getIterator(); iterator.hasNext();) {
            System.out.println("name: " + iterator.next());
        }
    }
}

参考:http://www.runoob.com/design-pattern/iterator-pattern.html

原文地址:https://www.cnblogs.com/hellokitty2/p/10722705.html