设计模式学习-迭代器模式(Iterator)

1.定义

提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。

不同种类的对象可能需要不同的遍历方式,我们对每一种类型的对象配一个迭代器,最后多个迭代器合成一个

2.结构

迭代器模式主要包含以下角色。

  • 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。
  • 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。
  • 抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()、first()、next() 等方法。
  • 具体迭代器(Concretelterator)角色:实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置。

结构图

  

 3.总结

由于聚合与迭代器的关系非常密切,所以大多数语言在实现聚合类时都提供了迭代器类,因此大多数情况下使用语言中已有的聚合类的迭代器就已经够了。

posted @ 2021-04-29 09:48  heils  阅读(61)  评论(0)    收藏  举报