guying-blog

23天设计模式之迭代器模式

文章简介

今天在看Vector类的源码时发现集合基本上都使用到了迭代器模式,去了解了迭代器模式的相关知识,于是就有了这篇文章!在文章中我会拿我们最熟悉的ArrayList类来举例,对应迭代器中的几种角色一一阐释清楚。废话不多说,文章献上。

是什么

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。简单来说就是提供了对集合等聚合结构的遍历所有元素的方法。

对象的内部表示指的是什么?这个我暂时也不清楚。不过我理解的大体意思是指,用户不用关心这个集合中元素是怎么排列的,用户只需要通过这个接口就能依次拿到所有元素。

作用

  1. 访问一个聚合对象的内容而无需暴露它的内部表示
  2. 支持对聚合对象的多种遍历
  3. 为遍历不同的聚合结构提供一个统一的接口

当然,上述几个概念都是从百度百科看来的,都比较容易理解,我也就不再一一啰嗦了。

角色

  1. Iterator(迭代器接口):迭代器定义访问和遍历元素的接口。
  2. ConcreteIterator (具体迭代器):实现迭代器接口,真正地实现迭代元素。
  3. Aggregate (聚合接口):创建相应迭代器对象的接口,比如 List<E> 接口。
  4. ConcreteAggregate (具体聚合):实现聚合接口,并提供一个方法返回一个具体迭代器。比如 ArrayList<E>

角色之间的关系图示:(配色可还行

相关文章:

  • 2022-02-03
  • 2021-11-26
  • 2021-05-01
  • 2021-08-06
  • 2021-06-20
  • 2022-03-07
  • 2021-06-21
  • 2021-12-28
猜你喜欢
  • 2021-07-07
  • 2021-04-08
  • 2021-04-09
  • 2021-12-28
相关资源
相似解决方案