迭代器模式
2023-09-11 14:20:28 时间
// 抽象聚合类 public interface IListCollection { Iterator GetIterator(); } // 迭代器抽象类 public interface Iterator { bool MoveNext(); Object GetCurrent(); void Next(); void Reset(); } // 具体聚合类 public class ConcreteList : IListCollection { int[] collection; public ConcreteList() { collection = new int[] { 2, 4, 6, 8 }; } public Iterator GetIterator() { return new ConcreteIterator(this); } public int Length { get { return collection.Length; } } public int GetElement(int index) { return collection[index]; } } // 具体迭代器类 public class ConcreteIterator : Iterator { // 迭代器要集合对象进行遍历操作,自然就需要引用集合对象 private ConcreteList _list; private int _index; public ConcreteIterator(ConcreteList list) { _list = list; _index = 0; } public bool MoveNext() { if (_index < _list.Length) { return true; } return false; } public Object GetCurrent() { return _list.GetElement(_index); } public void Reset() { _index = 0; } public void Next() { if (_index < _list.Length) { _index++; } } } // 客户端 class Program { static void Main(string[] args) { Iterator iterator; IListCollection list = new ConcreteList(); iterator = list.GetIterator(); while (iterator.MoveNext()) { int i = (int)iterator.GetCurrent(); Console.WriteLine(i.ToString()); iterator.Next(); } Console.Read(); } }
相关文章
- 聊聊并发(十)生产者消费者模式
- Repository模式介绍汇总
- 迭代器模式
- iOS设计模式之迭代器模式
- 「补课」进行时:设计模式(13)——迭代器模式
- 制造业的三种模式:OEM、ODM和OBM
- 《Android源码设计模式》--状态模式--责任链模式--解释器模式--命令模式--观察者模式--备忘录模式--迭代器模式
- Qt编写地图综合应用48-地球模式、三维模式、地铁模式
- 迭代器模式
- SAP UI5 应用开发教程之十三番外篇 - SAP UI5 应用的暗黑模式 - Fiori 3 Quartz Dark 主题的使用
- [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- Atitit 法学处罚方式模式 目录 1. 申诫罚、财产罚和能力罚1 1.1. 申诫罚 (警告和通报批评 )1 1.2. 财产罚是指使被处罚人的财产权利和利益受到损害的行政处罚。2 1.2
- Computer:项目管理之软件开发模式(瀑布式开发、快速原型开发、迭代式开发、螺旋式开发、敏捷式开发、DevOps开发)的简介、对比之详细攻略
- Java迭代器模式:优雅遍历集合,实现简洁高效的迭代器设计
- 设计模式 - 组合模式(composite pattern) 迭代器(iterator) 具体解释
- python 设计模式之状态模式
- Python: 使用生成器创建新的迭代模式
- 黑苹果 hackintosh 啰嗦模式
- 突发传输模式
- 迭代器模式
- Docker6种网络配置详解,网络模式应该这么选