(设计模式)迭代器

迭代器是用来遍历容器的工具,迭代器内部封装了容器遍历的细节。

因为容器可能比较多,而且结构也可能各不相同,例如有:数组、哈希表、链表、跳表、红黑树、多路树、图等等。因此,每种容器一般都会提供各自的迭代器,用于遍历容器里的数据。

每种容器都有自己的迭代器,但如果每种迭代器接口不统一,那么使用成本极高,因此每个容器的迭代器都必须统一规范。例如:JDK 的迭代器接口,主要定义三个方法,分别是 hasNext、next 和 remove。如下:

image

在遍历容器的数据时,只需要使用其迭代器的 hasNext、next 这两个方法即可,用 hasNext 判断容器是否有数据,next 获取容器的数据,直到容器的数据遍历完,所有容器都是这么操作。

模式分析:

1、统一容器遍历规范,遍历时只需要知道 “还有没有数据” 和 “下一个数据” 就行,极大简化遍历方式。

2、封装容器具体的遍历细节,不暴露容器的具体结构,符合迪米特原则。

本篇文章由一文多发平台ArtiPub自动发布

posted @ 2021-05-09 22:24  多元思维的开发者  阅读(40)  评论(0编辑  收藏  举报