Java设计模式<迭代器模式>

Java设计模式<迭代器模式>

意图

  • 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示

场景

  • 遍历一个聚合对象

优点

  • 访问一个聚合对象的内容而无须暴露它的内部表示
  • 需要为聚合对象提供多种遍历方式
  • 为遍历不同的聚合结构提供一个统一的接口

代码

定义迭代接口

public interface Iterator {

    public boolean hasNext();

    public E next();
}

定义容器接口


public interface Container {

    public Iterator getIterator();
}

定义容器实现类

public class FruitList implements Container {

    public String names[] = {"apple" , "orange" ,"banner" , "pineapple"};

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

    private class NameIterator implements Iterator {

        int index;

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

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


测试类DemoMain

public class DemoMain {

    public static void main(String[] args) {
        FruitList fruitList = new FruitList();
        for (Iterator iter = fruitList.getIterator();iter.hasNext(); ) {
            String name = (String) iter.next();
            System.err.println(name);
        }
    }

}

你可能感兴趣的:(Java设计模式<迭代器模式>)