zoukankan      html  css  js  c++  java
  • 我也设计模式——22.Iterator

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

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



    在.NET中,引入了两个接口,IEnumberable和IEnumberator,要定义自己的迭代器只要实现这两个接口:
    IEnumberable即Aggregate聚合类接口


    IEnumerator即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隐式的使用了迭代器

  • 相关阅读:
    设计模式--单例模式(Singleton)
    C# 和.Net 特性
    Fiddler 教程
    史铁生遗作:昼信基督夜信佛
    如何实现早日退休理想
    Linux 常用
    Golang 读书
    Python 读书
    RbMQ 简介
    UML 简介
  • 原文地址:https://www.cnblogs.com/Jax/p/913947.html
Copyright © 2011-2022 走看看