一、概念
1.1、定义
用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
- Container,容器类:定义存储元素对象列表,实现add和remove接口。
- Iterator,迭代类:元素对象需要间接依赖于容器类对象里列表,同时实现hasNext和next接口。
1.2、解决的问题
问题分析:
对于集合数据的遍历访问 和 存储过程 不同,存储过程先对固定,而访问遍历确可能变化。模式的解决思路:
迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类Iterator来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。
二、模式的应用和优缺点
2.1、应用场景
- 实例:
JAVA 中的 iterator
2.2、优缺点
优点:
1、易于扩展聚合数据的遍历方式,如正序遍历、倒叙遍历等
2、数据的存储过程和遍历过程剥离,方便彼此扩展缺点:
优点即缺点,数据的存储过程和遍历过程剥离,会导致类的数量增加,增加系统复杂性。