介绍与应用场景
迭代模式解决什么问题?
或者说如果不使用迭代模式会存在什么问题
Iterator模式功能:就是为了有效处理按顺序进行遍历访问的一种设计模式,可以屏蔽对象集合的容器类的实现细节
优点
- 功能分离:简化容器接口,让容器只实现其基本功能,把迭代功能委让给外部类实现,符合类的设计原则
- 隐藏容器的实现细节
- 为容器或其子容器提供了一个统一接口,方便调用,方便调用者无需关注迭代器实现细节
- 可以为容器或其子容器实现不同的迭代方法或多个迭代方法
角色关系
- Iterator 迭代器接口:定义实现迭代功能的最小定义方法集比如
hasNext(),next()
- ConcreteIterator 迭代器实现类:迭代器接口
Iterator
的具体实现类 - Aggregate 容器接口:定义基本功能以及提供类似
Iterator iterator()
的方法 - ConcreteAggregate 容器实现类:容器接口的实现类。必须实现
Iterator iterator()
方法
结构图
JDK部分代码结构图
代码实现
这里可以去看JDK的代码如下几个类就是迭代器模式的实现
- AbstractList
- ArrayList
- Iterator
- AbstractList.Itr 或 ArrayList.Itr