用途
提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
把在元素之间游走的责任交给迭代器,而不是聚合对象
要素
- 列表接口List:包含操作列表的方法,如Add()等;包含创建相应迭代器的方法,如createIterator()
- 实现类ArrayList/LinkedList:列表接口的实现类。
- 迭代器接口Iterator:包含迭代器操作方法,如Next()等。
- 实现类ArrayListIterator/LinkedListIterator:迭代器接口的实现类。
- 示例图

优缺点
- 每一个聚合实现类都需要一个迭代器与之对应,增加了系统复杂性
- 增加新的聚合类和迭代器很方便
