设计模式:迭代器模式
什么是迭代器模式?
迭代器模式(英文:Iterator Pattern),提供一种方法顺序访问一个容器对象的各个元素,而又无需暴露该对象的内部表示。
一句话归纳
流水线上坐一天,每个包裹扫一遍。
代码示例
java从1.2的版本中开始,就新增了一个java.util.Iterator<E>的接口,并且把Iterator应用到Collection接口中。在15的版本中引入了一个java.lang.Iterable<T>接口,有很多容器接口实现它,比如:List<E>、Set<E>、TreeSet<E>、Queue<E>等等,又有多少个容器类实现它,比如:ArrayList<E>、ArrayBlockingQueue<E>、CopyOnWriteArrayList<E>等等。迭代器模式已经融入到java当中了,让我们可以使用的如此轻松、方便。

在程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更换遍历方法就必须修改程序源代码,这违背了 “开闭原则”。既然将遍历方法封装在聚合类中不可取,那么聚合类中不提供遍历方法,将遍历方法由用户自己实现是否可行呢?答案是同样不可取,因为会存在两个缺点:暴露了聚合类的内部表示,使其数据不安全;增加了客户的负担。“迭代器模式”能较好地克服以上缺点,它在客户访问类与聚合类之间插入一个迭代器,这分离了聚合对象与其遍历行为,对客户也隐藏了其内部细节,且满足“单一职责原则”和“开闭原则”.
写在最后
好兄弟可以点赞并关注我的公众号“javaAnswer”,全部都是干货。