迭代器模式
提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
可以用同一种方法来遍历
例子
// 如果是arraylist之类的,内置的就有了
public class PancakeHouseMenu implements Menu{
Arraylist<MenuItem> items;
@Override
public Iterator createIterator(){
return items.iterator(); // 用java内置的方法就完事了
}
}
// 如果是数组,就比较麻烦,要自己写了
public class DinerMenu implements Menu {
public MenuItem[] list;
@Override
public Iterator getIterator() {
return new NameIterator();
}
private class DinerMenuIterator implements Iterator {
int index;
@Override
public boolean hasNext() {
if(index < list.length){
return true;
}
return false;
}
@Override
public Object next() {
if(this.hasNext()){
return list[index++];
}
return null;
}
//remove方法...略
}
}