1、 迭代器模式(Iterator)
提供一种方法顺序访问一个聚合对象中各个元素,而不不暴露该对象的内部表示。
当需要访问一个聚焦对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使
用迭代器模式。特别当需要对聚焦有多种方式遍历时,更应该考虑迭代器模式,为遍历不同的聚焦结构提供如开始、下一个、是否结束、当前哪一个等统一接口。
迭代器模式的结构图如下:
Aggregate:聚焦抽象类。
Iterator:迭代器抽象类,用于定义得到开始对象、得到下一个对象、判断是否到结尾、当前
对象等抽象方法,统一接口。
ConcreteAggregate:具体聚焦类,继承Aggregate。
ConcreteIterator:具体迭代器类,继承Iterator,实现开始、下一个、是否结尾、当前对象等方法。
2、 迭代器的好处
迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以
做到不暴露集合的内部结构,又可以让外部代码同名地访问集合内部的数据。
但是由于它太普遍了,所以各种高级语言都对它进行了封装,所以,反而给人感觉此模式本身不太常用。