适配器模式之迭代器模式
2016-10-06 13:26
127 查看
设计模式目录
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox
抽象迭代器负责定义访问和遍历元素的接口
具体迭代器 ConcreteIterator
要实现迭代器接口,完成容器元素的遍历
抽象容器 Aggregate
容器角色赋值提供创建具体迭代器角色的接口
具体容器 Concrete Aggregate
实现容器接口定义的方法,创建出容纳迭代器的对象
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox
迭代器模式
提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节通用类图
组成
抽象迭代器 Iterator抽象迭代器负责定义访问和遍历元素的接口
具体迭代器 ConcreteIterator
要实现迭代器接口,完成容器元素的遍历
抽象容器 Aggregate
容器角色赋值提供创建具体迭代器角色的接口
具体容器 Concrete Aggregate
实现容器接口定义的方法,创建出容纳迭代器的对象
通用源码
JAVA//抽象迭代器 public interface Iterator{ //遍历到下一个元素 public Object next(); //是否已经遍历到尾部 public boolean hasNext(); //删除当前指向的元素 public boolean remove(); } //具体迭代器 public class ConcreteIterator implements Iterator{ private Vector vector = new Vector(); //定义当前游标 public int cursor=0; @SuppressWarnings("unchecked"); public ConcreateIterator(Vector _vector);{ this.vector=_vector; } // 判断是否到达尾部 public boolean hasNext(){ if(this.cursor==this.vector.size()){ return false; }else{ return true; } } //返回下一个元素 public Object next(){ Object result=null; if(this.hasNext()){ result =this.vector.get(this.cursor++); }else{ result =null; } return result; } // public boolean remove(){ this.vector.remove(this.cursor); return true; } } //抽象容器 public interface Aggregate{ //是容器必然有元素的增加 public void add(Object object); //减少元素 public void remove(Object object); //有迭代器来遍历所有的元素 public Iterator iterator(); } //具体容器 public class ConcreteAggregate implements Aggregate{ // 容纳对象容器 private Vector vector=new Vector(); // 增加一个元素 public void add(Object object){ this.vector.add(object); } //减少元素 public void remove(Object object){ return this.remove(object); } //有迭代器来遍历所有的元素 public Iterator iterator(){ return new ConcreteIterator(this.vector); } } //场景 public class Client{ public static void main(String[] args){ //声明出容器 Aggregate agg= new ConcreteAggregate(); //产生对象数据放进去 agg.add("a"); agg.add("b"); agg.add("c"); agg.add("d"); //遍历 Iterator iterator =agg.iterator(); while(iterator.hasNext(){ System.out.println(iterator.next()); } } }
相关文章推荐
- 迭代器模式+代理模式和适配器模式的简述
- 《设计模式之禅》学习小结之适配器模式,迭代器模式和组合模式
- 命令模式-适配器模式-外观模式-模板方法模式-迭代器模式-组合模式-状态模式-代理模式
- 设计模式之适配器模式
- 设计模式学习笔记--迭代器模式
- 设计模式之适配器模式
- 【适配器模式】实现优先级队列
- 设计模式之迭代器模式
- PHP迭代器模式(引用SPL实现)
- 【GOF23设计模式】_迭代器模式_JDK内置迭代器_内部类迭代器JAVA244
- 适配器模式
- 迭代器模式 详解
- 设计模式学习之路 - 适配器模式 - 接口转换器
- 适配器模式
- 迭代器模式
- c++设计模式之迭代器模式
- 适配器模式
- 设计模式之迭代器模式--- Pattern Iterator
- 设计模式-迭代器模式
- 适配器模式