迭代器模式(Iterator )

在 面向对象程式设计里,迭代器模式是一种设计模式,是一种最简单也最多见的设计模式。它可让使用者透过特定的接口巡访容器中的每个元素而不用了解底层的实做。设计模式

定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。this

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

        Aggregate ag = new ConcreteAggregate();  
        ag.add("张三");  
        ag.add("李四");  
        ag.add("王五");  
        Iterator it = ag.iterator();  


        while(it.hasNext()){  
            String str = (String)it.next();  
           Console.WriteLine(str);

         
        }
        Console.Read();
        }
    }

  public  interface Iterator {  
     Object next();  
     bool hasNext();  
}  
public class ConcreteIterator : Iterator{  
    private ArrayList list = new ArrayList();  
    private int cursor =0;  
    public ConcreteIterator(ArrayList list){  
        this.list = list;  
    }  
    public bool hasNext() {  
        if(cursor==list.Count){  
            return false;  
        }  
        return true;  
    }  
    public Object next() {  
        Object obj = null;  
        if(this.hasNext()){  
            obj = this.list[cursor++];  
        }  
        return obj;  
    }  
}  
public interface Aggregate {  
     void add(Object obj);  
     void remove(Object obj);  
     Iterator iterator();  
}  
public class ConcreteAggregate : Aggregate {
    private ArrayList list = new ArrayList();  
    public void add(Object obj) {  
        list.Add(obj);  
    }  
  
    public Iterator iterator() {  
        return new ConcreteIterator(list);  
    }  
  
    public void remove(Object obj) {  
        list.Remove(obj);  
    }  
}

}
相关文章
相关标签/搜索