17.迭代器模式
2019-08-16 14:31 zhongj 阅读(98) 评论(0) 编辑 收藏 举报- 一、角色
- 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口
- 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例
- 抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()、first()、next() 等方法
- 具体迭代器(Concretelterator)角色:实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置
- 二、适用场景
- 访问一个聚合对象的内容而无须暴露它的内部表示
- 三、实例
- 图1是名字聚合对象的例子,其中Container是抽象聚合类,NameRepository是具体的聚合类,Iterator是抽象迭代器类,NameIterator是具体迭代器类,NameRepository中提供getIterator方法获取迭代器,然后通过获取到的迭代器对NameRepository聚合类中的名称集合进行方和遍历
- 代码地址:https://github.com/lanhei/DesignPattern/tree/master/src/com/lanhei/patterns/iterator
图-1