设计模式中的迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种方法来顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

迭代器模式的核心思想

  • 封装聚合对象的迭代操作:迭代器模式将迭代器的实现与聚合对象分离,使得迭代器只负责遍历聚合对象中的元素,而聚合对象则负责管理元素。
  • 提供一致的接口:迭代器模式为不同的聚合对象提供统一的迭代接口,使得客户端代码可以无需知道聚合对象的内部结构即可遍历其元素。

迭代器模式的优点

  • 简化客户端代码:客户端代码无需了解聚合对象的内部结构,只需通过迭代器即可遍历元素,从而简化了客户端代码。
  • 增加灵活性:迭代器模式使得聚合对象和迭代器可以独立变化,增加了系统的灵活性。
  • 支持多种遍历方式:迭代器模式支持多种遍历方式,如正向遍历、逆向遍历等。

示例

以下是一个简单的迭代器模式示例:

// 聚合对象
class Aggregate {
    List<Integer> elements = new ArrayList<>();

    public void add(int element) {
        elements.add(element);
    }

    public Iterator<Integer> getIterator() {
        return new Iterator<Integer>() {
            private int index = 0;

            @Override
            public boolean hasNext() {
                return index < elements.size();
            }

            @Override
            public Integer next() {
                return elements.get(index++);
            }
        };
    }
}

// 客户端代码
public class IteratorPatternDemo {
    public static void main(String[] args) {
        Aggregate aggregate = new Aggregate();
        aggregate.add(1);
        aggregate.add(2);
        aggregate.add(3);

        Iterator<Integer> iterator = aggregate.getIterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}

更多关于设计模式的资料,您可以访问本站设计模式专题

迭代器模式