迭代器模式

介绍

**定义:**在软件系统中, 容器通常有两个职责: 数据的存储和遍历. 从依赖性上看, 存储数据是聚合对象的基本职责而数据遍历则是可分离的. 迭代器模式将对象的遍历行为从容器中提取出来封装到迭代器对象中, 从而使聚合对象更加简单也更加符合单一职责原则.

UML

示例

在绝大多数编程语言中, 迭代器都是作为基本类库存在的. 在日常开发中, 基本也是直接使用类库中封装的迭代器, 需要从零实现迭代器的情况相当罕见.鉴于写示例代码的意义不大, 这里偷个懒就不写了, 实在感兴趣可以去看JDK中的 java.util.Iterator 接口及其实现类.

总结

使用场景

  1. 当需要减少程序中重复的遍历集合的代码时;

  2. 当需要为集合对象提供一个统一的遍历接口时.

优点:

1.更换同一对象的遍历方式相对简单, 只需定义一个迭代器的子类重写算法即可;

2.简化了集合类的结构, 由于迭代器的存在, 集合类无需再自行提供遍历方法;

3.由于有抽象层的存在, 无论是增加新的集合类还是迭代器都非常方便(编写对应遍历算法即可, 无需修改原有代码), 符合开闭原则.

缺点:

  1. 将数据存储和遍历的职责分离必然导致类的个数增加, 一定程度上增加了系统复杂度;

  2. 迭代器抽象层设计难度较大, 需要充分考虑到系统将来的拓展因素.

相关推荐
ximu_polaris6 天前
设计模式(C++)-行为型模式-迭代器模式
c++·设计模式·迭代器模式
geovindu9 天前
go: Iterator Pattern
开发语言·设计模式·golang·迭代器模式
Rsun0455120 天前
16、Java 迭代器模式从入门到实战
java·开发语言·迭代器模式
yaaakaaang21 天前
十七、迭代器模式
java·迭代器模式
无籽西瓜a22 天前
【西瓜带你学设计模式 | 第十六期 - 迭代器模式】迭代器模式 —— 统一遍历实现、优缺点与适用场景
java·后端·设计模式·迭代器模式·软件工程
程序员小寒1 个月前
JavaScript设计模式(七):迭代器模式实现与应用
前端·javascript·设计模式·迭代器模式
砍光二叉树1 个月前
【设计模式】行为型-迭代器模式
设计模式·迭代器模式
开开心心就好1 个月前
安卓免费证件照制作软件,无广告弹窗
linux·运维·安全·pdf·迭代器模式·依赖倒置原则·1024程序员节
逆境不可逃2 个月前
【从零入门23种设计模式18】行为型之备忘录模式
服务器·数据库·设计模式·oracle·职场和发展·迭代器模式·备忘录模式