目录

大话设计模式20:迭代器模式

大话设计模式:20.迭代器模式

迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示

TL;DR:C++、Java 中的迭代器,通过一个类定义迭代的方法,从而封装需要迭代对象的内部表示

迭代器模式结构图

1.优点

  1. 分离集合对象的遍历行为,抽象出一个迭代器类来负责,即不暴露内部结构,又可让外部代码透明地访问集合内部的数据

2.实现细节

  1. Aggregate:抽象集合对象类,其中定义一个创造迭代器的方法
  2. ConcreteAggregate:具体集合对象类,具体实现集合对象
  3. Iterator:抽象迭代类,定义迭代所需的方法,如 First、Next、Current
  4. ConcreteIterator:具体迭代类,实现迭代方法,在使用时,定义 Iterator 而使用某一个 ConcreteIterator,可以使用不同的迭代方法,顺序、倒序等

3.使用场景

  1. 对一个集合对象进行遍历,而不关心这些对象是什么的时候