设计模式 迭代器模式

迭代器模式(Iterator Pattern): 提供了一种方法来访问聚合对象,而不同用暴露这个对象的内部表示,起别名为游标(Cursor)。迭代器模式是一种对象行为型模式。

 

模式动机:

  在迭代器模式中,提供了一个外部的迭代器来对聚合对象进项访问和遍历,迭代器定义了一个访问该聚合元素的接口,并且可以跟踪当前遍历的元素,了解哪些元素已经遍历过而那些没有。

 

模式结构:

  • Iterator:抽象迭代器
  • ConcreteIterator: 具体迭代器
  • Agregate: 抽象聚合类
  • ConcreteAggregate: 具体聚合类

 

模式分析:

  在迭代器模式中应用了工厂方法模式,聚合类充当工厂类,而迭代器充当产品类,由于定义了抽象层,系统的扩充性很好,在客户端可以针对抽象聚合类和抽象迭代器进行编程。很多语言的类库都实现了迭代器。

 

具体实现类图:

 

 迭代器模式的优缺点:

 优点:

  • 支持以不同的方式遍历一个聚合对象
  • 迭代器简化了聚合类
  • 在同一个聚合上可以有多个遍历
  • 增加新的聚合类和迭代器类都很方便

 缺点:

  • 迭代器将存储数据和遍历数据的职责分离,增加新的聚合类要对应增加新的迭代器类,类的个数承兑增加
posted @ 2021-11-29 22:00  见怪见外  阅读(19)  评论(0编辑  收藏  举报