迭代器模式

根据GoF, 迭代器模式用于“顺序访问聚合对象的元素, 而不会暴露其底层实现”。
迭代器模式也称为游标。
【迭代器模式】在集合框架中, 我们现在使用的是Iterator, 而不是Enumeration。
java.util.Iterator接口使用迭代器设计模式。 迭代器模式的优势

  • 它支持遍历集合的变体。
  • 它简化了集合的接口。
迭代器模式的用法: 它用于:
  • 当你想访问对象集合而不暴露其内部表示形式时。
  • 集合中需要支持多个遍历对象时。
迭代器模式的示例
让我们通过上面的UML图了解迭代器模式模式的示例。
用于迭代器模式的UML:
迭代器模式

文章图片
以上UML的实现 步骤1 创建Iterartor接口。
public interface Iterator { public boolean hasNext(); public Object next(); }

第2步 创建一个容器接口。
public interface Container { public Iterator getIterator(); }// End of the Iterator interface.

第三步 创建一个CollectionofNames类, 该类将实现Container接口。
public class CollectionofNames implements Container { public String name[]={"Ashwani Rajput", "Soono Jaiswal", "Rishi Kumar", "Rahul Mehta", "Hemant Mishra"}; @Override public Iterator getIterator() { return new CollectionofNamesIterate() ; } private class CollectionofNamesIterate implements Iterator{ int i; @Override public boolean hasNext() { if (i< name.length){ return true; } return false; } @Override public Object next() { if(this.hasNext()){ return name[i++]; } return null; } } } }

步骤4 创建一个IteratorPatternDemo类。
public class IteratorPatternDemo { public static void main(String[] args) { CollectionofNames cmpnyRepository = new CollectionofNames(); for(Iterator iter = cmpnyRepository.getIterator(); iter.hasNext(); ){ String name = (String)iter.next(); System.out.println("Name : " + name); } } }

输出量
Name : Ashwani Rajput Name : Soono Jaiswal Name : Rishi Kumar Name : Rahul Mehta Name : Hemant Mishra

    推荐阅读