您的位置:首页 > 编程语言 > C#

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

2017-07-11 16:19 351 查看
迭代器模式()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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iterator 迭代器 c#