迭代器模式
迭代器模式提供了一种方法以顺序访问一个聚合对象(Collections)中的各个元素,而不需要暴露该对象的内部表示。迭代器模式将迭代逻辑封装在一个独立的迭代器对象中,使得客户端可以独立于聚合对象遍历聚合对象中的元素。
结构
迭代器模式示意图
迭代器模式将容器和迭代方式分离,使得容器可以专注于存储数据,而迭代器可以专注于遍历数据。
迭代器模式的核心是迭代器接口,该接口定义了遍历容器的方法(获取下一个元素、判断是否还有元素等)。具体的迭代器类实现了迭代器接口,负责实现遍历容器的逻辑。
迭代器的生命周期管理由容器类负责,容器类负责创建迭代器对象,并在迭代结束后销毁迭代器对象。在特殊情况下,容器类也应当允许客户端传入自定义的迭代器对象。
应用场景
- 希望对客户端隐藏容器内部的数据结构,同时提供一种统一的遍历接口时
- 希望同种遍历逻辑可以适用于多种类似的容器时