您的位置:首页 > 编程语言 > Java开发

Java设计模式--迭代器模式

2018-04-05 00:00 267 查看
摘要: java设计模式之迭代器模式

迭代器模式

迭代器模式(行为型模式)
数组遍历,链表遍历如何遍历?

提供一种方法顺序访问一个容器对象中的各个元素,而又不暴露该对象的内部细节,
是一种只应用于容器对象遍历的设计模式。
迭代器模式把在元素之间游走的责任交给了迭代器,而不是聚合对象,这不仅让聚合的接口和
实现变得更简洁,也可以让聚合更专注在它所应该专注的事情上,而不必理会遍历的事情。

迭代器角色:
1、Iterator:抽象迭代器,定义访问和遍历元素的接口,声明了用于遍历容器元素的方法。
2、ConcreteIterator:具体迭代器,实现了抽象迭代器接口,完成对聚合对象的遍历,
同时在具体迭代器中通过游标来标记在聚合对象中所处的当前位置,在具体的实现时,
游标通常是一个表示位置的非负整数。
3、Aggregate:抽象聚合类,用于储存和管理元素对象,声明一个createIterator()方法用于创建一个抽象迭代器对象,
充当抽象迭代器工厂角色。与jdk中的Collection相当
4、ConcreteAggregate:具体聚合类,实现在抽象觉类中声明的createIterator() 方法,
返回一个与该具体聚合类对应的具体迭代器实例ConcreteIterator。与JDK中Vector、LinkedList、HashSet相当。
总结:
1、迭代器为容器而生,
2、采用迭代模式后,容器的元素遍历与具体的容器是无关的。
适合迭代模式的情景:
1、遍历集合对象,不需要知道对象在集合中的存储方式,
2、用户可以同时使用多个迭代器遍历一个集合

应用场景:
JDK中Vector、LinkedList、Set容器中的遍历(traverse)
Vector:内存空间是线性、连续的
LinkedList:链式结构
Set:树形结构

完续......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  迭代器模式