大话设计模式-迭代器模式
来源:互联网 发布:傲视天地 源码 编辑:程序博客网 时间:2024/05/23 14:39
需求
设计一个公交车上售票员要求每个人买票的程序。
实现
abstract class Iterator{ //第一个 public abstract Object first(); //下一个 public abstract Object next(); //时候到结尾 public abstract boolean isDone(); //当前对象 public abstract Object currentItem(); }
abstract class Aggregate{ public abstract Iterator createIterator(); }
class ConcreteIterator extends Iterator { private ConcreteAggregate aggregate; private int current=0; public ConcreteIterator(ConcreteAggregate aggregate) { this.aggregate=aggregate; } @Override public Object first() { return aggregate.get(0); } @Override public Object next() { Object ret=null; current++; if(current<aggregate.count()) { ret=aggregate.get(current); } return ret; } @Override public Object currentItem() { return aggregate.get(current); } @Override public boolean isDone() { return current>=aggregate.count()?true:false; } }
import java.util.*;class ConcreteAggregate extends Aggregate { private List<Object> items=new ArrayList<Object>(); @Override public Iterator createIterator() { return new ConcreteIterator(this); } public int count() { return items.size(); } public Object get(int index) { return items.get(index); } public void set(Object value) { items.add(value); } }
public class Main { public static void main(String[] args) { ConcreteAggregate a=new ConcreteAggregate(); a.set("大鸟"); a.set("小菜"); a.set("行李"); a.set("老外"); a.set("公交内部员工"); a.set("小偷"); Iterator iterator=new ConcreteIterator(a); while (!iterator.isDone()) { System.out.println(iterator.currentItem() + "\t请买车票."); iterator.next(); } } }迭代器模式,又叫做游标模式,提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。在现代面向对象编程语言如C++,java等中已经实现了迭代器模式。
0 0
- 大话设计模式-迭代器模式
- 大话设计模式 迭代器模式
- 大话设计模式-迭代器模式
- 大话设计模式_迭代器模式
- 大话设计模式之迭代器模式
- 大话设计模式20----迭代器模式
- 大话设计模式之迭代器模式
- 大话设计模式读书笔记之迭代器模式
- 《大话设计模式》
- 大话设计模式 笔记
- 《大话设计模式》笔记
- 改装:大话设计模式
- 大话设计模式摘要
- 大话设计模式 --- 卷首语
- 《大话设计模式》
- 大话设计模式电子版
- 大话设计模式
- 大话设计模式
- GSON方式生成和解析json数据
- 简要的Windows API函数大全
- 获取计算机全名
- 单链表的三种排序算法
- Spring—— 构造注入
- 大话设计模式-迭代器模式
- Maven安装
- unity3d常用函数
- geohash 精度
- ios 审核加急快速上架
- UNPv1第十五章:非阻塞IO
- Windows下MySQL-zip方式安装
- UICollectionView的常用属性和方法
- Atomic write, 揭开你的面纱