Design Patterns - Iterator Pattern(译)

原文地址
译者 smallclover
希望对你们有所帮助

设计模式-迭代器模式

迭代器是Java和.Net程序环境下经常使用的一种设计模式。这种设计模式通常用来获取能顺序访问集合对元素象的方式,并且不需要了解底层是如何实现的。
迭代器模式属于行为型模式下的一种。

实现

我们将创建一个Iterator接口,该接口描述迭代所需要的方法;紧接着声明了一个Container接口,该接口返回一个iterator对象。我们会创建具体的类实现Container接口和Iterator接口,并去使用它们。
IteratorPatternDemo,我们的demo类将使用NamesRepository类,该类有一个集合存储要被打印的名字。

第一步

创建接口

Iterator.java

public interface Iterator {
public boolean hasNext();
public Object next();
}
Container.java

public interface Container {
public Iterator getIterator();
}

第二步

创建具体类实现Container接口,该类还有一个内部类NameIterator实现了Iterator接口。
NameRepository.java

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 

第三步

使用NameRepository获得迭代器并且打印name。
IteratorPatternDemo.java

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);  }     

}
}

第四步

校验输出

Name : Robert
Name : John
Name : Julie
Name : Lora

关键字:java, 设计模式

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部