迭代器模式

来源:互联网 发布:闪电软件下载 编辑:程序博客网 时间:2024/06/06 00:35

提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。存储数据和遍历数据的职责分离,
抽象裂变类,抽象迭代器类。
迭代器接口:

interface Iterator {      public Object next();      public boolean hasNext();  }  class ConcreteIterator implements Iterator{      private List list = new ArrayList();      private int cursor =0;      public ConcreteIterator(List list){          this.list = list;      }      public boolean hasNext() {          if(cursor==list.size()){              return false;          }          return true;      }      public Object next() {          Object obj = null;          if(this.hasNext()){              obj = this.list.get(cursor++);          }          return obj;      }  }  interface Aggregate {      public void add(Object obj);      public void remove(Object obj);      public Iterator iterator();  }  class ConcreteAggregate implements Aggregate {      private List 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);      }  }  public class Client {      public 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();              System.out.println(str);          }      }  }  
原创粉丝点击