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

Posted 孤影的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了23天设计模式之迭代器模式相关的知识,希望对你有一定的参考价值。

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

文章简介

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

是什么

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

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

作用

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

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

角色

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

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

以上是关于23天设计模式之迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

一天学习一个设计模式之迭代器模式

GoF 23 种设计模式之迭代器模式和命令模式

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

(38)23种设计模式研究之九迭代器模式和组合模式

23种设计模式之迭代器模式(Iterator)

java23中设计模式之迭代器模式