迭代器模式
内容参考 w3cschool
分类:行为型设计模式
应用:JDK 中的迭代器
目录
UML类图
创建接口 Iterator Container
Iterator
public interface Iterator {
/**
* 判断是否还有直接后继
* @return 布尔值
*/
Boolean hasNext();
/**
* 获取直接后继
* @return 直接后继对象
*/
Object next();
}
Container
public interface Container {
/**
* 获取迭代对象
* @return 迭代对象
*/
Iterator getIterator();
}
创建需要迭代的实体类
nameRepository
public class NameRepository implements Container{
public String[] names = {"Dcpnet00","Dcpnet01","Dcpnet02"};
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;
}
}
@Override
public Iterator getIterator() {
return new NameIterator();
}
}
运行测试
public class ExecuteMain {
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);
}
}
}
Name :Dcpnet00
Name :Dcpnet01
Name :Dcpnet02
Process finished with exit code 0