设计模式之迭代器模式

迭代器模式是用来顺序访问集合对象的元素,而不需要知道集合对象的底层表示

1、定义迭代器行为

public interface Iterator {

    boolean hasNext();

    Object next();
}

2、定义容器模板

public interface Container {

    Iterator getIterator();
}

3、迭代器具体实现

public class NameRepository implements Container {

    public String[] names = {"A", "B", "C", "D"};

    @Override
    public Iterator getIterator() {
        return new NameIterator();
    }

    private class NameIterator implements Iterator {

        int index;

        @Override
        public boolean hasNext() {
            if (index < names.length) {
                return true;
            }
            return false;
        }

        @Override
        public Object next() {
            if (this.hasNext()) {
                return names[index++];
            }
            return null;
        }
    }
}

4、测试

public class _Test {
    public static void main(String[] args) {
        NameRepository nameRepository = new NameRepository();
        Iterator iterator = nameRepository.getIterator();
        while (iterator.hasNext()) {
            String name = (String) iterator.next();
            System.out.println("name:" + name);
        }
    }
}

原理比较简单,JDK中的集合框架中使用也比较多。

 

posted @ 2020-12-08 12:39  _Gateway  阅读(68)  评论(0编辑  收藏  举报