原创:花括号MC(微信公众号:huakuohao-mc),欢迎分享,转载请保留出处。
迭代器模式是日常用的最多的了。迭代器主要是提供一种方式,让我们能够访问容器里面的元素。
先来看一下UML
图:
看一下如何实现一个迭代器
先定义一个迭代器接口
public interface Iterator {
public boolean hasNext();
public Object next();
}
定义一个容器接口,该接口返回一个迭代器
public interface Container {
public Iterator getIterator();
}
定义一个 NameIterator
实现Iterator
接口
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;
}
}
定义一个具体的容器,使用Iterator
实现元素访问。
public class NameRepository implements Container {
public String names[] = {"Robert", "John", "Julie", "Lora"};
@Override
public Iterator getIterator() {
return new NameIterator();
}
}
客户端这样使用
public class IteratorPatternDemo {
public static void main(String[] args){
NameRepository nameRepository = new NameRepository();
for (Iterator iterator = nameRepository.getIterator(); iterator.hasNext();){
//通过迭代器访问
String name = (String) iterator.next();
System.out.println("Name : " + name);
}
}
}
总结
迭代器模式是行为模式之一,日常开发中虽然使用频率很高,但是自己实现迭代器模式的概率还不是很高。