1. Iterator 模式(迭代器模式)

1.1 什么是Iterator 模式?

     为了习惯于设计模式,我们首先从相对比较容易理解的Iterator 模式开始学起。iterate这个英文单词有重复,迭代的意思,Iterator 用中文表示的话叫做“迭代器”。Iterator 模式是指,为集合对象提供顺序访问方法的一种模式。

     例如,把List类作为集合对象来考虑。在List类中可以存储多个元素。想要对这个List对象中保存的各个元素进行顺序访问时,根据访问顺序的不同,有各种各样不同的方法。我们来考虑一下这种情况,想要访问各个元素的名字的时候,或者想走查各个元素所保有的参数。此时,走查的方法由谁来提供比较合适呢?由List类来提供所有的走查方法是不可能的。为什么呢?因为,走查方法因为目的不同,要考虑不同的一些东西,而把这些全部予先准备好是不可能的。因此,这个提供走查方法的类和List类独立出来。于是,提供必要的走查方法的类由用户自己作成,为用户提供更加灵活的设计。

    还有作为集合对象的类,发生变化的时候,会给很多的地方带来影响。因为Iterator 模式为集合对象的顺序访问,提供了一个通用的接口,所以可以将变更点控制在一个很小的范围内。

    下面,我们看一下代码的示例。

 1.2 代码示例 

    代码示例,假定你是学校的老师。你,作为学校的一个新来的老师,让你做一个班级的班主任。假定你的班里有5个【学生】,表示【学生】的类 Student ,像下面这样定义。

 

 

    学生类里面,有成员变量name 、sex,以及获取名字的成员方法getName() 和获取性别的成员方法getSex()。为了管理这些学生,学校给了你一个学生名册。

  

    对于你来说,从学校得到的这个名册,可以自由的增加学生。

    对于学校来说,当作老师应该记载的东西,对老师有下面的能力要求。

      第一条 老师,应该有能力自己把学生的信息记载到学生名册里面。

      第二条 老师,应该有能力按照记载的顺序来叫学生的名字。 

    这个能力要求的条文用Java表示出来,如下所示。

 

     因为你只是一个新老师,还没有这个能力。因此,你需要把这个能力学会。那么,你怎样来进行设计,并实现在类【Teacher】中定义的抽象方法呢?

 

参考:http://www.techscore.com/tech/DesignPattern/Iterator.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值