迭代器模式
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
迭代器模式让我们能够游走于聚合内的每个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。
集合collection/聚合aggregate:指一群对象,其存储方法可以是各式各样的数据结构,例如:列表、数组、散列表,无论用什么方式存储,一律可以视为是集合/聚合。
实例:
public class MenuItem{
String name;
String description;
boolean vegetarian;
double price;
public MenuItem(String name,String description,boolean vegetarian,double price){
this.name=name;
this.description=description;
this.vegetarian=vegetarian;
this.price=price;
}
public String getName(){ return name;}
public String getDescription(){ return description;}
public double getprice(){ return price;}
public boolean isVegetarian(){ return vegetarian;}
}
public interface Iterator{
boolean hasNext(); //返回一个布尔值,判断是否还有更多的元素
Object next(); //返回下一个元素
}
//实现迭代器接口 DinerMenu
public class DinerMenuIterator implements Iterator{
MenuItem[] items;
int position