现在我们来学习迭代器模式,首先我们来看一下迭代器模式的定义与类型,首先呢他提供了一种方法,顺序访问
一个集合对象中的各个元素,而又不暴露该对象的内部表示,简单理解呢,是遍历,大箱子,里面放了很多笔记本电脑,
从上至下,我们从上之下数一下,比如戴尔电脑,第二个惠普电脑,第三个是苹果电脑,那这个就是一个遍历的过程
我们看一下迭代器的适用场景,首先访问一个集合对象的内容,而无需暴露他的内部表示,第二项是为了遍历不同的集合结构,
提供一个统一的接口,也就是我去看一个箱子里面的电脑,还是看一个箱子里面的显示器,其实都用一个迭代器,都OK的,
为这个集合结构提供一个统一的接口
那迭代器的优点有哪些呢,首先分离了集合对象的遍历行为,因为抽象出来一个迭代器,来负责这个
集合对象的遍历,这样我们就可以让外部的代码,访问集合内部的数据
那当然他肯定有缺点,缺点是什么呢,类的个数成对增加,那由于迭代器模式是将存储数据和遍历数据
这两个职责进行分离,所以如果我们新出现一种集合类,就需要增加集合类对应的新的迭代器类,也就是
类的个数是成对增加的,那因为类的个数增加呢,在一定程度上就增加了类的复杂性
那我们再看一下迭代器相关的设计模式,首先是迭代器模式和访问者模式,那这都是迭代的访问一个对象中的元素,
不同的是在访问者模式当中,扩展开放的部分,在对象的操作上,而在迭代器模式中,扩展开放的部分,是在集合对象的
种类上,那这两种的实现方式,也有很大的区别,那在后面我们讲访问者模式的时候,也会来讲一下
那接下来我们来看一下coding好的迭代器代码,那这里面要强调一下,迭代器在我们日常使用当中,
是非常广泛的,但是我们使用的JDK,或者Guava,很多开源的项目当中,这些都会使用现成的迭代器,
几乎不会自己去写一个迭代器,所以虽然他的使用范围很广,使用率很高,但是对于自己实现迭代器这种
方式,平时很少看到,所以对于我们设计模式课程,有重点有非重点,我们一起来解读写好的迭代器的,
实现代码,然后也会来看一下UML,最后对迭代器在源码中的应用,进行解析,那现在让我们一起来解析迭代器
模式的代码