设计模式-15-迭代子模式

来源:互联网 发布:苹果数据接口转usb 编辑:程序博客网 时间:2024/06/06 02:30

迭代子模式:所谓迭代器模式就是提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。
迭代器模式的原理图

创建接口

package com.actionPattern.iterator.edition1;public interface Iterator {   public boolean hasNext();   public Object next();}
package com.actionPattern.iterator.edition1;public interface Container {   public Iterator getIterator();}

//创建实现了 Container 接口的实体类。该类有实现了 Iterator 接口的内部类NameIterator。

package com.actionPattern.iterator.edition1;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 = 0;      /**       * 判断index是否指向数组的最后一个下标       */      @Override      public boolean hasNext() {         if(index < names.length){            return true;         }         return false;      }      //获取index当前所对应的数组下标元素      @Override      public Object next() {         if(this.hasNext()){            return names[index++];         }         return null;      }        }}

测试

package com.actionPattern.iterator.edition1;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);      }        }}
原创粉丝点击