设计模式之迭代器模式
迭代器模式是用来顺序访问集合对象的元素,而不需要知道集合对象的底层表示
1、定义迭代器行为
public interface Iterator { boolean hasNext(); Object next(); }
2、定义容器模板
public interface Container { Iterator getIterator(); }
3、迭代器具体实现
public class NameRepository implements Container { public String[] names = {"A", "B", "C", "D"}; @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; } } }
4、测试
public class _Test { public static void main(String[] args) { NameRepository nameRepository = new NameRepository(); Iterator iterator = nameRepository.getIterator(); while (iterator.hasNext()) { String name = (String) iterator.next(); System.out.println("name:" + name); } } }
原理比较简单,JDK中的集合框架中使用也比较多。