23天设计模式之迭代器模式
Posted 孤影的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了23天设计模式之迭代器模式相关的知识,希望对你有一定的参考价值。
23天设计模式之迭代器模式
文章简介
今天在看Vector类的源码时发现集合基本上都使用到了迭代器模式,去了解了迭代器模式的相关知识,于是就有了这篇文章!在文章中我会拿我们最熟悉的ArrayList类来举例,对应迭代器中的几种角色一一阐释清楚。废话不多说,文章献上。
是什么
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。简单来说就是提供了对集合等聚合结构的遍历所有元素的方法。
对象的内部表示指的是什么?这个我暂时也不清楚。不过我理解的大体意思是指,用户不用关心这个集合中元素是怎么排列的,用户只需要通过这个接口就能依次拿到所有元素。
作用
- 访问一个聚合对象的内容而无需暴露它的内部表示
- 支持对聚合对象的多种遍历
- 为遍历不同的聚合结构提供一个统一的接口
当然,上述几个概念都是从百度百科看来的,都比较容易理解,我也就不再一一啰嗦了。
角色
- Iterator(迭代器接口):迭代器定义访问和遍历元素的接口。
- ConcreteIterator (具体迭代器):实现迭代器接口,真正地实现迭代元素。
- Aggregate (聚合接口):创建相应迭代器对象的接口,比如
List<E>
接口。 - ConcreteAggregate (具体聚合):实现聚合接口,并提供一个方法返回一个具体迭代器。比如
ArrayList<E>
。
角色之间的关系图示:(配色可还行
以上是关于23天设计模式之迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章