迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
使用java的应该对迭代器非常熟了,让集合返回iterator对象就可以很方便的遍历一个集合。初学java的时候我也对这个没什么概念,觉得很奇怪,用循环不就可以遍历集合了吗,而且也可以很方便的进行操作,为什么要有迭代器这个东西,过了很久我也没特别的感受。迭代器的作用是封装了遍历,比如linklist和arraylist两者遍历的方法就不一样,arraylist可以用下标,而linklist就不行了,通过迭代器可以遍历集合和忽略集合内部的表示。
所有的集合都实现Aggregate接口,该接口提供了一个createIterator方法,客户通过该方法可以得到一个能遍历该集合的迭代器,ConcreteAggregate实现了createIterator方法,决定返回了ConcreteIterator的类型。concreteIterator实现了Iterator接口,并针对对应的集合实现hasNext,next,remove方法。对client来说,使用的是iterator接口,屏蔽了concreteAggregate的实现。