设计模式之---迭代器模式
来源:互联网 发布:博客平台推荐 知乎 编辑:程序博客网 时间:2024/05/21 21:38
现在很多编程语言都通过发语法糖来支持这种模式了,比如Java的for-each,但我们对这个模式做个了解还是有必要的。
package iterator;public interface Iterator { public Object next(); public boolean hasNext(); }
package iterator;import java.util.ArrayList;import java.util.List;public class ConcreteIterator implements Iterator {private List list = new ArrayList(); private int cursor =0; public ConcreteIterator(List list){ this.list = list; } @Overridepublic Object next() {// TODO Auto-generated method stubObject obj = null; if(this.hasNext()){ obj = this.list.get(cursor++); } return obj;}@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn list.size()==cursor?false:true;}}
package iterator;public interface Aggregate {public void add(Object obj); public void remove(Object obj); public Iterator iterator();}
package iterator;import java.util.ArrayList;import java.util.List;public class ConcreteAggregate implements Aggregate {private List list = new ArrayList();@Overridepublic void add(Object obj) {// TODO Auto-generated method stublist.add(obj);}@Overridepublic void remove(Object obj) {// TODO Auto-generated method stublist.remove(obj);}@Overridepublic Iterator iterator() {// TODO Auto-generated method stubreturn new ConcreteIterator(list);}}
package iterator;public class Client {public static void main(String[] args) {// TODO Auto-generated method stubAggregate ag = new ConcreteAggregate(); ag.add("小明"); ag.add("小红"); ag.add("小刚"); Iterator it = ag.iterator(); while(it.hasNext()){ String str = (String)it.next(); System.out.println(str); } }}迭代器模式的优缺点:
1 0
- 设计模式之迭代器模式
- 设计模式之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之--迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之-迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式 之 迭代器模式
- 设计模式 之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- CERL介绍
- Java项目开发心得(二):使用EhCache+SSM实现数据缓存
- iOS开发之蓝牙4.0 -- BLE开发
- 微信JS SDK PHP Demo
- WinForm异步:如何:对 Windows 窗体控件进行线程安全调用
- 设计模式之---迭代器模式
- Tensorflow学习:Variable变量
- jmeter使用put方法提交的数据格式
- 使用Connetion的属性RetainSameConnection
- 后缀数组总结
- logstash使用小结
- LEADTOOLS Recognition Imaging Developer Toolkit
- java处理日期时间
- Spring mvc中的@RequestHeader