1.迭代器模式介绍
迭代器模式(Iterator Pattern)又称为游标模式,是十一大行为型设计模式之一。
2.迭代器模式的定义
提供一种方法顺序访问一个容器对象的各个元素,而又不需要暴露该对象的内部暗示。
3.迭代器模式的使用场景
遍历一个容器对象时。
4.UML类图

5.角色介绍
Iterator:迭代器接口。迭代器接口负责dinginess,访问和遍历元素的接口。
Concrete Iterator:具体迭代器类。目的主要是实现迭代器接口,并记录遍历的当前位置。
Aggregate:容器接口。负责提供创建具体迭代器角色的接口。
Concrete Aggregate:具体容器类。具体迭代器角色与该容器相关联。
Client:客户类。
6.模板





7.Android源码中的迭代器模式
数据库查询使用Cursor,当使用SQLiteDatabase的query方法查询数据库时,会返回一个Curson游标对象,该游标对象实质就是一个具体的迭代器,可以使用它来遍历数据库查询所得的结果集。
8.总结
迭代器模式优点很单一:支持以不同的方式不遍历一个容器对象,也可以有多个遍历,弱化了容器类与遍历算法之间的关系。
迭代器缺点:对类文件的增加。
网友评论