c#设计模式之迭代器模式

来源:互联网 发布:linux apache是否启动 编辑:程序博客网 时间:2024/06/12 19:34

迭代器模式()Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示

using System;public interface IIterator{    bool MoveNext();    Object CurrentItem();    void First();    void Next();}public interface IList{    IIterator GetIterator();}public class ConcreteIterator : IIterator{    private ConcreteList list;    private int index;    public ConcreteIterator(ConcreteList list)    {        this.list = list;        index = 0;    }    public bool MoveNext()    {        if (index < list.Length)        {            return true;        }        else        {            return false;        }    }    public Object CurrentItem()    {        return list.GetElement(index);    }    public void First()    {        index = 0;    }    public void Next()    {        if (index < list.Length)        {            ++index;        }    }}public class ConcreteList : IList{    int[] list;    public ConcreteList()    {        list = new int[] { 1, 2, 3, 4, 5 };    }    public IIterator GetIterator()    {        return new ConcreteIterator(this);    }    public int Length    {        get { return list.Length; }    }    public int GetElement(int index)    {        return list[index];    }}class Program{    static void Main(string[] args)    {        IList list = new ConcreteList();        IIterator iterator = list.GetIterator();        while (iterator.MoveNext())        {            int i = (int)iterator.CurrentItem();            Console.WriteLine(i.ToString());            iterator.Next();        }        Console.ReadKey();    }}


原创粉丝点击