Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
提供一种方式,用于遍历容器内的元素,而不暴露容器的底层表示。
- 在不暴露容器内部表示的情况下,遍历容器内的元素。
- 用于支持多种遍历方式(例如:先序、中序、后序)。
- 提供一种通用接口 (
for each),用于遍历不同容器。
- 迭代器 (
Iterator)- 声明用于访问 (
CurrentItem()) 和遍历 (First(),Next(),Done()) 元素的接口。
- 声明用于访问 (
- 具体迭代器 (
ConcreteIterator)- 实现 迭代器 的接口。
- 在遍历过程中,追踪当前位置。
- 容器 (
Container)- 声明用于创建 迭代器 实例的接口 (
CreateIterator())。
- 声明用于创建 迭代器 实例的接口 (
- 具体容器 (
ConcreteContainer)- 实现 容器 中声明的用于创建 迭代器 实例的接口,返回一个 具体迭代器 实例。