static void Main(string[] args) { //创建聚合(集合)对象 IAggregate list = new ConcreteAggregate(); //声明迭代器对象 ITerator iTerator = list.GetITerator(); //进行迭代 while (iTerator.MoveNext()) { var i = iTerator.GetCurrent(); Console.WriteLine(i); iTerator.Next(); } Console.ReadKey(); }
/// <summary> /// 迭代器模式: /// 顾名思义,迭代器模式就是可以对一个集合进行迭代循环遍历 /// 所以一个集合可以循环遍历,肯定是有两部分构成:1.集合本身;2.迭代器对象; /// /// 根据设计模式六大原则的单一职责: /// 我们应该将集合和迭代器这两部分解耦分离开 /// 所以此时我们需要定义两个接口:1.集合本身;2.迭代器; /// 然后每个对象都要有具体的实现,这样子就应该有4个对象 /// </summary> /// <param name="args"></param> static void Main(string[] args) { //初始化数据对象 Data data = new Data(new int[] { 1, 9, 6, 2, 8, 33, 44, 66, 88, 65, 2123, 78, 9 }); //获取到数据对象的迭代器 ITerator iterator = data.GetIterator(); //遍历输出数据值 while (iterator.MoveNext()) { var value = iterator.GetCurrent(); Console.WriteLine(value.ToString()); iterator.Next(); } Console.WriteLine("End"); Console.ReadKey(); }