迭代器模式(Iterator Pattern)部分代码
2007-11-20 12:20
405 查看
摘自TerryLee's Blog
URL:/article/4583464.html
public interface IList
{
IIterator GetIIterator();
}
public interface IIterator
{
bool MoveNext();
object CurrentItem();
void First();
void Next();
}
class ConcreateList : IList
{
int[] list;
public ConcreateList()
{
list = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
}
//实现接口方法
public IIterator GetIIterator()
{
return new ConcreteIterator(this);
}
public int Length
{
get { return list.Length; }
}
public int GetElement(int index)
{
return list[index];
}
}
class ConcreteIterator : IIterator
{
//声明聚集
private ConcreateList list;
//声明索引
private int index;
public ConcreteIterator(ConcreateList lst)
{
this.list = lst;
this.index = 0;
}
/// <summary>
/// 表示是否可以向后移动
/// </summary>
/// <returns>bool true:表示可以移动</returns>
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++;
}
}
}
class App
{
public static void Main()
{
//实例化聚集
IList lst = new ConcreateList();
IIterator iteraotr = lst.GetIIterator();
while (iteraotr.MoveNext())
{
int i = (int)iteraotr.CurrentItem();
System.Console.WriteLine(i.ToString());
iteraotr.Next();
}
System.Console.ReadLine();
}
}
URL:/article/4583464.html
public interface IList
{
IIterator GetIIterator();
}
public interface IIterator
{
bool MoveNext();
object CurrentItem();
void First();
void Next();
}
class ConcreateList : IList
{
int[] list;
public ConcreateList()
{
list = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
}
//实现接口方法
public IIterator GetIIterator()
{
return new ConcreteIterator(this);
}
public int Length
{
get { return list.Length; }
}
public int GetElement(int index)
{
return list[index];
}
}
class ConcreteIterator : IIterator
{
//声明聚集
private ConcreateList list;
//声明索引
private int index;
public ConcreteIterator(ConcreateList lst)
{
this.list = lst;
this.index = 0;
}
/// <summary>
/// 表示是否可以向后移动
/// </summary>
/// <returns>bool true:表示可以移动</returns>
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++;
}
}
}
class App
{
public static void Main()
{
//实例化聚集
IList lst = new ConcreateList();
IIterator iteraotr = lst.GetIIterator();
while (iteraotr.MoveNext())
{
int i = (int)iteraotr.CurrentItem();
System.Console.WriteLine(i.ToString());
iteraotr.Next();
}
System.Console.ReadLine();
}
}
相关文章推荐
- (第Ⅳ部分 行为型模式篇) 第17章 迭代器模式(Iterator Pattern)
- (第Ⅳ部分 行为型模式篇) 第17章 迭代器模式(Iterator Pattern)
- (第Ⅳ部分 行为型模式篇) 第17章 迭代器模式(Iterator Pattern)
- 设计模式笔记12:迭代器模式(Iterator Pattern)
- 我所理解的设计模式(C++实现)——迭代器模式(Iterator Pattern)
- 迭代器模式 The Iterator Pattern
- Net设计模式实例之迭代器模式(Iterator Pattern)
- 迭代器模式(Iterator Pattern)
- 二十四种设计模式:迭代器模式(Iterator Pattern)
- 设计模式拾荒之迭代器模式 ( Iterator Pattern )
- 【23种设计模式】之 迭代器模式(Iterator Pattern)
- 我所理解的设计模式(C++实现)——迭代器模式(Iterator Pattern)
- 听webcast的行为型模式篇-迭代器模式(Iterator Pattern) 记录
- 迭代器模式(Iterator pattern)
- 深入浅出设计模式-010:迭代器模式(Iterator Pattern)
- 设计模式学习--迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)
- 迭代器模式(Iterator Pattern)
- 设计模式笔记12:迭代器模式(Iterator Pattern)
- java_设计模式_迭代器模式_Iterator Pattern(2016-08-12)
- 您的设计模式——迭代器模式【Iterator Pattern】