代码实在太多了,偷个懒转载大佬的
https://www.cnblogs.com/lzhp/p/3427704.html
迭代器模式
提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露内部的表示
把在元素之间遍历的责任交给迭代器,而不是聚合对象
角色
client 客户类,聚合对象和迭代器的拥有者
Aggregate 聚合类接口,负责创建迭代器
iterator 迭代器接口,遍历元素
设计原则:一个类应该只有一个引起变化的原因
内聚 度量一个类或模块紧密达到单一目的或责任的程度。
迭代器和组合模式
迭代器和组合模式配合,就像树的结构一样,非常灵活,可以忽略部分与整体的差异,使用迭代器作为叶子或者迭代器元素作为叶子,遍历时很方便就能遍历多个不同实现元素的遍历
组合模式定义
允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对想组合。