迭代器(游标)模式:Iterator(Cursor) Pattern、行为型模式
迭代器模式提供一种顺序访问集合/容器对象元素的方法,而又无需暴露集合内部信息。
迭代器模式核心在于 抽离集合对象迭代行为到迭代器中提供一致访问接口
迭代器模式应用场景
1、访问一个集合对象的内容而无需暴露它的内部信息
2、为遍历不同的集合提供一个统一的访问接口。
迭代器模式的优缺点
优点:
1、多态迭代:为不同的聚合结构提供一致的遍历接口。
2、简化集合对象接口:迭代器模式将集合本身应该提供的元素迭代接口抽取到了迭代器中,使集合对象无需关心具体的迭代行为
3、解耦迭代与集合:封装了具体的迭代算法,迭代算法的变化不会影响到集合对象的架构
缺点:
1、对于比较简单的遍历(数组或者有序列表),使用迭代器方式遍历比较繁琐
ps:在日常开发中基本不会自己手写迭代器,除非需要自己定制一个数据结构的迭代器。
迭代器模式源码应用
1、JDK中的 ArrayList
2、Mybatis中的 DefaultCursor