迭代器模式

一. 迭代器模式

1.1 定义

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

1.2 角色

  • 抽象迭代器接口(Iterator).
  • 具体迭代器(ConcreteIterator).
  • 抽象聚合接口(Aggregate).
  • 具体聚合(ConcreteAggregate).

二. 具体实现

1.1 创建抽象迭代器接口

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

1.2 创建抽象聚合接口

    public interface Aggregate {
        Iterator iterator();
    }

1.3 创建具体聚合及具体迭代器

    public class ConcreteAggregate implements Aggregate {
        @Override
        public Iterator iterator() {
            return new ConcreteIterator();
        }
        private class ConcreteIterator implements Iterator {
            @Override
            public Object next() {
                System.out.println("ConcreteIterator next ...");
                return null;
            }
            @Override
            public boolean hasNext() {
                System.out.println("ConcreteIterator hasNext ....");
                return true;
            }
        }
    }

1.4 调用

    public static void main(String[] args) {
        Aggregate aggregate = new ConcreteAggregate();
        Iterator iterator = aggregate.iterator();
        if(iterator.hasNext()){
            iterator.next();
        }
    }

1.5 输出


    ConcreteIterator hasNext ....
    ConcreteIterator next ...

三. 优缺点

3.1 优点

  • 简化了聚合类的接口.

3.2 缺点

  • 增加新的聚合类需要增加新的具体迭代器.

四. 源码

    https://github.com/Seasons20/DisignPattern.git

END


JadeQYuan
279 声望311 粉丝

知其然,知其所以然。。。