文章出處
文章列表
// 抽象聚合類 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(); } }
文章列表
全站熱搜