结构图:
释义:
迭代器模式:用一致的方法遍历元素集的元素,不需要知道元素集对象的底层表示,即不需要暴露元素集对象内部的结构
结构:
- Iterator(抽象迭代器):定义了访问和遍历元素的接口,声明了用于遍历数据元素的方法。
- ConcreteIterator(具体迭代器):实现了抽象迭代器接口,完成对聚合对象的遍历,在具体迭代器中通过游标来记录在聚合对象中所处的当前位置,游标通常是一个表示位置的非负整数。
- Aggregate(抽象聚合类):用于存储和管理元素对象,声明createIterator()方法用于创建一个迭代器对象,充当抽象迭代器工厂角色。
- ConcreteAggregate(具体聚合类):实现了在抽象聚合类中声明的createIterator()方法,该方法返回一个与该具体聚合类对应的具体迭代器ConcreteIterator实例。
适用场景:
当你需要访问一个聚合对象中的元素,但不想暴露其内部结构时,可以使用迭代器模式。这样可以保持聚合对象的封装性,同时提供一种统一的访问方式。这个聚合可能是集合也可能是树或者其他复杂结构。