模式介绍

迭代器模式(Iterator Pattern)是 Java 编程环境中非常常用的设计模式。用于顺序访问集合对象的元素,不需要知道集合对象的底层实现。

使用场景

1、访问一个聚合对象的内容而无须暴露它的内部表示。
2、需要为聚合对象提供多种遍历方式。
3、Java 中大部分集合类都用到了这个模式。

系统实现

/**
 * 迭代器接口
 */
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 Client{
   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

相关文章: