go-pattern-examples/behavior/04_iterator
2021-01-21 16:02:53 +08:00
..
book_iterator add two iterator patterns examples 2020-05-03 19:33:03 +08:00
person_iterator add two iterator patterns examples 2020-05-03 19:33:03 +08:00
iterator_test.go add code to chain_of_responsibility pattern 2020-05-04 01:11:19 +08:00
iterator.go update iterator pattern 2020-05-04 11:24:28 +08:00
README.md 将“送”更改为“迭” 2021-01-21 16:02:53 +08:00

迭代器模式

迭代器模式主要设计在于将一类相关的对象集中管理起来,通过一组通用的行为的迭代接口,对外提供一致性的迭代访问机制,使外部不必关心内部的数据类型和结构组织形式,目的是对集合类或者类集合类数据提供一致性的访问方式.

迭代器模式在各种语言中都有很深入,很广泛的应用,迭代器模式就是,对这种存在于语言中的基本模式的进一步应用。

迭代器模式中的两个重要的接口:

type Iterator interface {
//定义迭代器可以进行的动作
  Next()
//...
}

type IEnumerator interface {
  //返回一个迭代器接口
	Iterator() Iterator
}

迭代器是一种管理数据的方式,往往需要一个管理数据的内在容器/集合/链表/栈等结构,需要注意的是,一般在访问上不实现为链表的访问方式,而使用滑动游标的方式。 现实生活中的景区的地图指南就是一个很好的迭代器的例子,地图就是一个迭代器,不论是哪个景区,都能通过一张地图(或者说这个迭代器),让你明白当前景区的景点数,最佳参观顺序等,游客只需要按照迭代器的方式去访问景点即可。