迭代器模式

介绍

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

UML

示例

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

总结

使用场景

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

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

优点:

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

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

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

缺点:

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

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

相关推荐
开开心心就好1 天前
安卓免费证件照制作软件,无广告弹窗
linux·运维·安全·pdf·迭代器模式·依赖倒置原则·1024程序员节
逆境不可逃8 天前
【从零入门23种设计模式18】行为型之备忘录模式
服务器·数据库·设计模式·oracle·职场和发展·迭代器模式·备忘录模式
胖虎114 天前
iOS中的设计模式(十二)- 迭代器模式(Iterator Pattern)在 iOS 开发中的实践
设计模式·迭代器模式
逆境不可逃14 天前
【从零入门23种设计模式16】行为型之迭代器模式
java·开发语言·数据结构·算法·设计模式·职场和发展·迭代器模式
驴儿响叮当20101 个月前
设计模式之迭代器模式
设计模式·迭代器模式
开开心心就好1 个月前
实用系统备份还原,小巧免PE备份快镜像小
windows·计算机视觉·pdf·计算机外设·迭代器模式·excel·桥接模式
开开心心就好1 个月前
实用PDF擦除隐藏信息工具,空白处理需留意
运维·服务器·windows·pdf·迭代器模式·桥接模式·1024程序员节
juma90021 个月前
西门子S7-1200系列PLC的Modbus TCP通讯实现:S7-1215C客户端读取S7-...
迭代器模式
J_liaty1 个月前
23种设计模式一迭代器模式
设计模式·迭代器模式