- 浏览: 20060 次
- 性别:
- 来自: 上海
最新评论
迭代模式:
此模式的思想是有一个数据集合,我们写出一个算法集合,使用算法集合内的各个算法,来迭代数据集合,获得一些数据。
最常见的就是 List 、Set 等我们常常使用的集合,采用迭代器(Iterator)进行获取集合内的元素。
以下模仿写了一个实现
package com.mkf.pattern; public interface Iterator { public Object previous(); public boolean hasPrevious(); public Object next(); public boolean hsNext(); public Object first(); public boolean isFirst(); public Object last(); public boolean isLast(); } package com.mkf.pattern; public interface Collection { public Iterator getIterator(); public Object get(int i); public int size(); } package com.mkf.pattern.impl; import com.mkf.pattern.Collection; import com.mkf.pattern.Iterator; public class MyIterator implements Iterator { private Collection collection; private int pos = -1; public MyIterator(Collection collection) { this.collection = collection; } @Override public Object first() { pos = 0; return collection.get(pos); } @Override public boolean isFirst() { if (pos == 0) { return true; } return false; } @Override public Object last() { pos = collection.size() - 1; return collection.get(pos); } @Override public boolean isLast() { if (pos == collection.size() - 1) { return true; } return false; } @Override public Object next() { if (pos < collection.size() - 1) { pos++; } return collection.get(pos); } @Override public boolean hsNext() { if (pos < collection.size() - 1) { return true; } return false; } @Override public boolean hasPrevious() { if (pos > 0) { return true; } return false; } @Override public Object previous() { if (pos > 0) { pos--; } return collection.get(pos); } } package com.mkf.pattern.impl; import com.mkf.pattern.Collection; import com.mkf.pattern.Iterator; public class MyCollection implements Collection { public String[] str = { "A", "B", "C", "D", "E", "F", "G" }; @Override public Object get(int i) { return str[i]; } @Override public Iterator getIterator() { return new MyIterator(this); } @Override public int size() { return str.length; } } package com.mkf; import com.mkf.pattern.Collection; import com.mkf.pattern.Iterator; import com.mkf.pattern.impl.MyCollection; public class TestIterator { /** * @param args */ public static void main(String[] args) { Collection collection = new MyCollection(); Iterator iterator = collection.getIterator(); while(iterator.hsNext()){ System.out.print(iterator.next()); System.out.print("\t"); } } }
运行结果为:
A B C D E F G
发表评论
-
责任链模式
2012-04-30 18:07 871责任链模式:即处理一个逻辑时,请求到一个对象A,对象A处理完毕 ... -
观察者模式
2012-04-08 15:23 753观察者模式:有观察者(Observer)和被观察者(Subje ... -
模板方法模式
2012-03-30 20:48 753模板方法模式:该模式主要思想是,通过抽象类(AbstractC ... -
策略模式
2012-03-30 20:27 686策略模式:主要思想就是,为某一件事情,根据不同的原因,产生不同 ... -
动态代理
2012-03-30 20:28 726动态代理:即JAVA在运行时,动态的创建代理类。 使用动态代 ... -
组合模式
2012-03-26 22:36 715组合模式:核心思想是解决树形结构,将一个复杂的对象简单化。典型 ... -
桥接模式
2012-03-26 22:34 815桥接模式:如果你了解JDBC的DriverManager设计思 ... -
外观模式
2012-03-26 22:31 745外观模式:其实就是对调用复杂的业务进行再一次封装,给客户一个简 ... -
代理模式
2012-03-26 22:25 701代理模式:即通过代理对象来执行被代理的对象。 代理对象拥有被 ... -
装饰器模式
2012-03-26 22:16 739装饰器模式:即客户端先调用的接口A,现在客户端需要在调用接口A ... -
适配器模式
2012-03-25 16:49 654适配器模式:客户端调用某一个类型 Adapter,该类型只有o ... -
原型模式
2012-03-25 15:58 721原型模式:有一个对象A,在不使用创建的情况下,得到一个与A一样 ... -
建造者模式
2012-03-25 14:56 672建造者模式:一般用来创建复杂对象,如:一个类型的对象 A 的属 ... -
单例模式
2012-03-25 14:05 328单例模式:即在全局范围内,某个类只允许存在一个实例。 ... -
工厂模式
2012-03-25 12:58 371工厂模式:即通过一个类进行创建同一类型的不同对象。 例 ...
相关推荐
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
使用组合模式与迭代模式的结合构件树以及轻松遍历树的子节点示例
主要介绍了Java设计模式之迭代模式(Iterator模式)介绍,本文用一个老师点名的现象描述了迭代模式的使用,需要的朋友可以参考下
源代码(eclipse直接打开) 博文链接:https://futrueboy.iteye.com/blog/382010
NULL 博文链接:https://364232252.iteye.com/blog/2370774
设计模式之迭代器模式 设计模式之迭代器模式 设计模式之迭代器模式
23种设计模式之迭代器模式对迭代器模式进行了简单的介绍,并附带了例子程序,和大家分享
迭代器模式Demo
设计模式的迭代器模式的例子,希望对大家有用~~~~~~~~
迭代器模式的示例代码和文档,学习迭代器模式的参考资料。
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
IteratorPattern 迭代设计模式
使用composite模式构成二叉树,并用迭代器模式封装访问,前序、中序和后序的遍历。JAVA 编写。 Main中直接运行
设计模式之迭代器模式(新) 设计模式之迭代器模式(新)
迭代器模式demo
设计模式--迭代器模式java例子
设计模式-迭代器模式(讲解及其实现代码)