行为型模式之迭代器模式
2018-04-28 本文已影响9人
0爱上1
定义:(又叫做游标模式)
一种行为型模式
允许对一组对象元素的遍历,是一种比较常见的设计模式
由来:
我们知道对于数据的存储结构可能会多种多样,那对于数据的遍历如果依赖数据的存储结构的化就会存在很多种遍历的方式。所以出现了迭代器模式,不依赖数据存储的数据结构,即抽象出一个迭代器
UML类图:
1
实现步骤:
1:在容器类(聚合类)中添加一个iterator方法,获取一个迭代器,并赋予迭代器数据访问权。
2:设计一个迭代器用于对容器类内封装数据的遍历
3:客户端请求容器类(聚合类)对象创建一个迭代器对象
4:客户端使用迭代器的方法,first(),hasNext(),next()等访问容器类中的元素
代码实现:
模拟菜单中的菜品遍历
1:数据类---菜品
22:菜单类 -- 可以理解为具体的存放数据的容器 XXCollection
3容器类中需要定义一个iterator方法去获取到一个迭代器。此处因为jdk中定义好了Iterator接口,所以这里采用了一个内部类去实现Iterator迭代器接口,内部类MenuIterator就是一个具体的迭代器类。
4客户端:
5结果:
6模式总结:
1:提供了一种方式来顺序访问集合对象中的内容,而无需暴漏其内部数据结构(例如Menu的内部存储数据客户端不需要知道,在遍历Menu中数据时采用Iterator去遍历)。
2:为遍历不同的集合容器类提供了统一的接口。