1. 程式人生 > >軟體設計模式——迭代器模式(Iterator Pattern)

軟體設計模式——迭代器模式(Iterator Pattern)

用途

迭代器模式用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。

實現

我們將建立一個敘述導航方法的 Iterator 介面和一個返回迭代器的 Container 介面。實現了 Container 介面的實體類將負責實現 Iterator 介面。
IteratorPatternDemo我們的演示類使用實體類
NamesRepository 來列印 NamesRepository 中儲存為集合的 Names。
這裡寫圖片描述

public interface Iterator {
   public boolean hasNext();
   public Object next();
}
public interface Container {
   public Iterator getIterator();
}
public class NameRepository implements Container {
   public String names[] = {"Robert" , "John" ,"Julie" , "Lora"};

   @Override
   public Iterator getIterator() {
      return new NameIterator();
   }

   private class NameIterator
implements Iterator {
int index; @Override public boolean hasNext() { if(index < names.length){ return true; } return false; } @Override public Object next() { if(this.hasNext()){ return names[index++]; } return
null; } } }
public class IteratorPatternDemo {

   public static void main(String[] args) {
      NameRepository namesRepository = new NameRepository();

      for(Iterator iter = namesRepository.getIterator(); iter.hasNext();){
         String name = (String)iter.next();
         System.out.println("Name : " + name);
      }    
   }
}

輸出結果:
Name : Robert
Name : John
Name : Julie
Name : Lora