大话设计模式之迭代器模式
来源:互联网 发布:知乎笔记本推荐 编辑:程序博客网 时间:2024/05/29 18:22
迭代器模式
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示
迭代器实现
聚合抽象类、具体聚集类、迭代抽象类、具体迭代器(继承迭代抽象类,实现开始,下一个,是否结尾,当前对象等方法)
abstract class Iterator { public abstract object First(); public abstract object Next(); public abstract bool IsDone(); public abstract object CurrentItem();}abstract class Aggregate { public abstract Iterator CreateIterator();}class ConcreteIterator : Iterator { private ConcreteAggregate aggregate; private int current = 0; public ConcreteIterator(ConcreteAggregate aggregate) { this.aggregate = aggregate; } public override object First() { return aggregate[0]; } public override object Next() { object ret = null; current ++; if(current < aggregate.Count) { ret = aggregate[current]; } return ret; } public override bool isDone(){ return current >= aggregate.Count ? true:false; } public override object CurrentItem(){ return aggregate[current]; }}class ConcreteAggregate : Aggregate { private IList<object> items = new List<object>(); public override Iterator CreateIterator() { return new ConcreteIterator(this); } public int Count; //省略getset方法 public object this; get (int index){ return items[index] } set (int index){ items.Add(index,value); }}//clientstatic void Main(string[] args) { ConcreteAggregate a = new ConcreteAggregate(); a[0] = "大鸟"; a[1] = "小菜"; //与Iterator i = new ConcreteIterator(a);等同 Iterator i = a.createIterator(); while(!i.isDone()) { Console.WriteLine("{0}请买车票",i.currentItem()); i.Next(); }}
阅读全文
0 0
- 大话设计模式之迭代器模式
- 大话设计模式之迭代器模式
- 大话设计模式读书笔记之迭代器模式
- 大话设计模式-迭代器模式
- 大话设计模式 迭代器模式
- 大话设计模式-迭代器模式
- 大话设计模式之装饰设计模式
- 大话设计模式之UML
- 大话设计模式之开篇
- 大话设计之策略模式
- 大话设计之装饰模式
- 大话设计之代理模式
- 大话设计之原型模式
- 大话设计之外观模式
- 大话设计之适配器模式
- 大话设计模式之UML
- 大话设计模式之总结
- 《大话设计模式》java实现之迭代器模式
- Linux系统常用命令回顾
- MPAndroidChart
- Longest Common Prefix
- 常见算法基础题思路简析(三)-二叉树篇
- Unity练习日记第二天 子弹的消失
- 大话设计模式之迭代器模式
- 1027. 打印沙漏(20)
- Toast.makeText 初解
- OpenWrt源码分析之编译系统
- PHP语言开发
- java视频教程免费下载
- 汉字编码与编程相关问题总结:ASCII、机内码、区位码、国标码、Unicode码他们之间是如何转换的
- Java读取txt文件
- 简单了解Java发展历史