行为型模式之迭代器模式

文章目录
  1. 1. 需求场景
  2. 2. 解决办法
  3. 3. 总结
  4. 4. 源码分享
  5. 5. 参考文献

需求场景

在Java中,经常需要将一类对象放到List、Set、Map等容器中,而且通常需要对容器中的对象进行遍历访问。那么如何实现对这些容器的遍历呢?当然,每个容器本身都提供了遍历的方法。但是这些方法是不统一的,客户端的使用变得麻烦。

解决办法

其实,在Java中不管是采用List、Set方式存储的对象,还是采用Map方式存储对象,都可以使用迭代器进行遍历。

总结

迭代器模式提供一种方法,可以顺序访问一个集合中的对象,而又不需要暴露该对象的内部表示。

迭代器模式分离了集合对象的遍历行为,抽象出一个迭起器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

迭代器模式主要由4部分组成:迭代器角色、具体迭代器角色、容器角色和具体容器角色。

  • 迭代器角色负责定义访问和遍历元素的接口。
  • 具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置。
  • 容器角色负责提供创建具体迭代器角色的接口。
  • 具体容器角色实现创建具体迭代器角色的接口,这个具体迭代器角色与该容器的结构无关。

源码分享

https://github.com/voidking/design-pattern-behavior.git

参考文献

《易学设计模式》
《大话设计模式》
接口设计六大原则
软件设计六大设计原则讲解
Java中如何遍历Map对象的4种方法
Java容器集合类的区别用法