迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示
迭代器模式能让我游走于聚合内的每一个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。
迭代器模式UML图:
当然,这里我们的迭代器接口是自己定义的迭代器接口,我们完全可以使用JDK自带的java.util.Iterator接口。
由于JDK支持迭代器模式,并且在他的集合框架中,大部分集合都已经实现了迭代器的创建,让该模式变得更加简单,因此,也给我们省下了不少力气来学习和使用迭代器模式。
但是,迭代器模式下依然有值得我们学习的地方,那就是他的设计思想:
设计原则:单一职责
一个类应该只有一个引起其变化的原因
就是说类最好只赋予一种职责,这样其能适应单一的变化,如果一个类的职责过多,任何一个职责的变化都可能会引起整个类的变化,甚至会引起其他不相关的职责代码或者结构的变化,从而影响其扩展性和维护性。
永远不要返回一个null迭代器,让迭代器的hasNext方法返回false更好,这样客户端就不用去写验证null的差错代码啦。
参考资料:
Head First 设计模式 (中国电力出版社)
- 大小: 32.8 KB
分享到:
相关推荐
迭代器(Iterator) 用意:可以顺序地访问一个集合中的元素而不必暴露集合中的内部表象。
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
本文实例讲述了PHP设计模式之迭代器模式Iterator。分享给大家供大家参考,具体如下: 1.概述 类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种...
设计模式C++学习之迭代器模式(Iterator)
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
【Java设计模式】(1)迭代器模式Iterator(代码)
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不... 这是第18节:行为型模式Iterator迭代器模式
主要为大家详细介绍了C++设计模式之迭代器模式Iterator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain 从以上可以看出,设计模式到处用到面向对象中的多态。接口调用子类中的...
迭代器模式(Iterator Pattern)是设计模式中的一种行为模式,它允许顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式提供了一种方法,可以顺序地访问一个聚合对象中的各个元素,而又...
C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式 (Level 300)
iterator-demo 迭代器设计模式demo
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 迭代器模式 java demo
博文“设计模式之--迭代器模式”附属源码,以供参考。
Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现
本文实例讲述了PHP设计模式之迭代器(Iterator)模式。分享给大家供大家参考,具体如下: 迭代器有时又称光标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如list或vector)上遍访的接口,设计...
C++设计模式课件21_Iterator_迭代器.pdf
c++设计模式-行为型模式-迭代器模式;qt工程;c++简单源码;迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。