个性化阅读
专注于IT技术分析

迭代器模式

根据GoF, 迭代器模式用于“顺序访问聚合对象的元素, 而不会暴露其底层实现”。

迭代器模式也称为游标。

在集合框架中, 我们现在使用的是Iterator, 而不是Enumeration。

java.util.Iterator接口使用迭代器设计模式。

迭代器模式的优势

  • 它支持遍历集合的变体。
  • 它简化了集合的接口。

迭代器模式的用法:

它用于:

  • 当你想访问对象集合而不暴露其内部表示形式时。
  • 集合中需要支持多个遍历对象时。

迭代器模式的示例

让我们通过上面的UML图了解迭代器模式模式的示例。

用于迭代器模式的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
赞(0)
未经允许不得转载:srcmini » 迭代器模式

评论 抢沙发

评论前必须登录!