设计模式——迭代器模式

52 阅读1分钟

一.定义

    它提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。

二.类图

image.png

  • Iterator抽象迭代器:负责定义访问和遍历元素的接口,而且基本有三个固定的方法:
    • first() 获得第一个元素
    • next() 访问下一个元素
    • isDown() 是否已经访问到底部(Java叫做hasNext()方法)
  • ConcreteIterator具体迭代器:实现迭代器接口,完成容器元素的遍历
  • Aggregate抽象容器:容器角色负责提供创建具体迭代器角色接口,必然提供一个类似createIterator()这样的方法,JAVA中一般是iterator()方法。
  • ConcreteAggregate具体容器:实现容器接口的定义的方法,创建出容纳迭代器的对象

三.注意事项

  • 迭代器模式现在属于一个没落的模式,主要是因为现在所有的高级语言都有Iterator这个接口或实现,例如JAVA集合类Collection中常用的类都继承了Iterator接口,现在基本上没人会单独写一个迭代器。
  • 开发系统时,迭代器的删除方法应该完成两个逻辑:一是删除当前元素,二是当前游标指向下一个元素。