迭代器模式讲解

现在我们来学习迭代器模式,首先我们来看一下迭代器模式的定义与类型,首先呢他提供了一种方法,顺序访问

一个集合对象中的各个元素,而又不暴露该对象的内部表示,简单理解呢,是遍历,大箱子,里面放了很多笔记本电脑,

从上至下,我们从上之下数一下,比如戴尔电脑,第二个惠普电脑,第三个是苹果电脑,那这个就是一个遍历的过程

我们看一下迭代器的适用场景,首先访问一个集合对象的内容,而无需暴露他的内部表示,第二项是为了遍历不同的集合结构,

提供一个统一的接口,也就是我去看一个箱子里面的电脑,还是看一个箱子里面的显示器,其实都用一个迭代器,都OK的,

为这个集合结构提供一个统一的接口

那迭代器的优点有哪些呢,首先分离了集合对象的遍历行为,因为抽象出来一个迭代器,来负责这个

集合对象的遍历,这样我们就可以让外部的代码,访问集合内部的数据

那当然他肯定有缺点,缺点是什么呢,类的个数成对增加,那由于迭代器模式是将存储数据和遍历数据

这两个职责进行分离,所以如果我们新出现一种集合类,就需要增加集合类对应的新的迭代器类,也就是

类的个数是成对增加的,那因为类的个数增加呢,在一定程度上就增加了类的复杂性

那我们再看一下迭代器相关的设计模式,首先是迭代器模式和访问者模式,那这都是迭代的访问一个对象中的元素,

不同的是在访问者模式当中,扩展开放的部分,在对象的操作上,而在迭代器模式中,扩展开放的部分,是在集合对象的

种类上,那这两种的实现方式,也有很大的区别,那在后面我们讲访问者模式的时候,也会来讲一下
那接下来我们来看一下coding好的迭代器代码,那这里面要强调一下,迭代器在我们日常使用当中,

是非常广泛的,但是我们使用的JDK,或者Guava,很多开源的项目当中,这些都会使用现成的迭代器,

几乎不会自己去写一个迭代器,所以虽然他的使用范围很广,使用率很高,但是对于自己实现迭代器这种

方式,平时很少看到,所以对于我们设计模式课程,有重点有非重点,我们一起来解读写好的迭代器的,

实现代码,然后也会来看一下UML,最后对迭代器在源码中的应用,进行解析,那现在让我们一起来解析迭代器

模式的代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值