迭代器模式
提供一种可以遍历聚合对象的方式,又称cursor模式。迭代器模式(Iterator)就是分离了聚合对象的遍历行为,抽象出一个迭代器来负责这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部数据。
聚合对象:存储数据
迭代器:遍历数据
结构图
聚合抽象类一般以内部类的方式存储
/** * 定义迭代器接口 */ public interface MyIterator { void first(); void next(); boolean hasNext(); boolean isFirst(); boolean isLast(); Object getCurrentObject(); } / * 聚合类 */ public class ConcreteAggregate { private List<Object> list = new ArrayList<>(); public void addConcrete(Object obj){ list.add(obj); } public MyIterator createIterator(){ return new ConcretIterator(); } private class ConcretIterator implements MyIterator{ private int cursor; //定义游标,用于记录变量时的位置 @Override public void first() { cursor = 0; } @Override public void next() { if(cursor == list.size()){ return; } cursor++ ; } @Override public boolean hasNext() { if(cursor< list.size()){ return true; } return false; } @Override public boolean isFirst() { return cursor == 0?true:false; } @Override public boolean isLast() { return cursor == list.size()? true:false; } @Override public Object getCurrentObject() { return list.get(this.cursor); } } } public class Client { public static void main(String[] args){ ConcreteAggregate ca = new ConcreteAggregate(); ca.addConcrete("zhang"); ca.addConcrete("lisi"); ca.addConcrete("wangWS"); MyIterator iterator = ca.createIterator(); while (iterator.hasNext()){ System.out.println(iterator.getCurrentObject()); iterator.next(); } } }
相关推荐
23种设计模式之迭代器模式对迭代器模式进行了简单的介绍,并附带了例子程序,和大家分享
设计模式之迭代器模式(新) 设计模式之迭代器模式(新)
深入浅出Java设计模式之迭代器模式 _天极网
java设计模式之迭代器模式,从生活中的例子举例说明迭代器模式。
深入浅出学习Java设计模式之迭代器模式
迭代器(Iterator) 用意:可以顺序地访问一个集合中的元素而不必暴露集合中的内部表象。
深入浅出学习Java设计模式之迭代器模式[参考].pdf
这份文档以例子的形式讲诉了设计模式之迭代器与组合模式,希望可以帮助学习的人!
迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如Java中的List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将...
本文实例讲述了Python设计模式之迭代器模式原理与用法。分享给大家供大家参考,具体如下: 迭代器模式(Iterator Pattern):提供方法顺序访问一个聚合对象中各元素,而又不暴露该对象的内部表示. 下面是一个迭代器模式...
设计模式的迭代器模式的例子,希望对大家有用~~~~~~~~
主要为大家详细介绍了javascript设计模式之迭代器模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了C++设计模式之迭代器模式Iterator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
设计模式-迭代器模式(讲解及其实现代码)
主要介绍了C++设计模式之迭代器模式,本文讲解了什么是迭代器模式、迭代器模式的代码实例等内容,需要的朋友可以参考下
迭代器设计模式代码示例--以最简单的代码诠释迭代器设计模式
主要为大家详细介绍了PHP设计模式之迭代器模式,感兴趣的小伙伴们可以参考一下