当不再使用for循环,替代以foreach/GetEnumerator,
当从if条件/switch分支得到的不再是string,而是一个工厂对象,
                         ————以上种种情形,标志着编程功力的提高。

使用迭代器,是为了访问一个集合而无需暴露它的内部表示。这里,内部表示指的是数据结构可以是树/数组/链表等等,不同的内部结构对应不同的遍历算法。
GOF中的UML图是这样的:
我也设计模式——22.Iterator


在.NET中,引入了两个接口,IEnumberable和IEnumberator,要定义自己的迭代器只要实现这两个接口:
IEnumberable即Aggregate聚合类接口
我也设计模式——22.Iterator

IEnumerator即Iterator迭代器接口
我也设计模式——22.Iterator

.NET中所有的集合都实现了这两个接口,如IList,ArrayList。

在NET使用迭代器的模型:
            List<int> a = new List<int>();
            a.Add(
1);
            a.Add(
2);

            IEnumerator
<int> o = a.GetEnumerator();
            
while (o.MoveNext())
            {
                
int i = o.Current;
                
//Do something
            }

.NET中的foreach隐式的使用了迭代器

相关文章:

  • 2022-01-29
  • 2021-10-08
  • 2021-07-03
  • 2021-05-25
  • 2021-09-18
  • 2021-10-18
  • 2021-06-02
  • 2022-02-22
猜你喜欢
  • 2022-12-23
  • 2022-01-05
  • 2021-08-25
  • 2022-02-03
  • 2021-12-31
  • 2021-06-13
  • 2021-11-29
相关资源
相似解决方案