定义:
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素(元素不一定有序),而不是暴露其内部的表示。
迭代器模式让我们能游走在聚合内的每个元素,而不暴露其内部表示。把游走的任务放在迭代器对象上,而不是聚合对象上,简化了聚合对象的接口和实现,符合单一责任原则,让责任各得其所。
类图:
java.util.Iterator接口:
java.util.Enumeration接口是一个有序迭代器实现,可以使用适配器模式让Enumeration和Iterator互相转换。
ListIterator接口比我们常见迭代器接口多了一个previous方法。
java5中for/in语句:
java5中所有的集合和数组都可以使用for/in语句来遍历(利用泛型保证类型安全),不需要请求迭代器。
for(Object obj : collection){
……
}
设计原则:
1.单一职责,一个类应该只有一个引起变化的原因。因为类的每个责任都有改变的可能性,超过一个责任意味着超过一个改变的潜在区域。尽量让每个类保持单一责任。
2.内聚,度量一个类或模块紧密地达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关的功能,则它具有高内聚;反之,当被设计成支持一组不相关的功能时,则它具有低内聚。