该设计模式是为了方便客户端将希望遍历的被放入容器、集合类的一组ADT对象,无需关心容器的具体类型。
也就是说,不管对象放在哪里,都提供同样的遍历方式。‘’
更简单的说,无论是Set、Map、List,只要客户端想要遍历,你就能提供一个统一方法。
放在具体实现,简单来说又以下几步:
1. 对于ADT实现Iterable接口,并且完成该接口的实现方法。这个方法用于返回一个具体的迭代器对象
例如:
public Iterator<Car> iterate(){
return new ParkingFieldIterator();
}
2. 实现Interator接口
在这个实现方法内,主要完成两个方法的重写:hasnext和next,前者用于判读迭代器是否能够遍历下一个变量,后者用于遍历下一个变量。如果愿意,还可以实现remove(注意计数器的可变性)。