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

文章简介

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

是什么

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

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

作用

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

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

角色

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

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

版权声明:本文为guying-blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/guying-blog/p/14965291.html