mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-21 19:36:03 +03:00
.. | ||
book_iterator | ||
person_iterator | ||
iterator_test.go | ||
iterator.go | ||
README.md |
迭代器模式
迭代器模式主要设计在于将一类相关的对象集中管理起来,通过一组通用的行为的迭代接口,对外提供一致性的迭代访问机制,使外部不必关心内部的数据类型和结构组织形式,目的是对集合类或者类集合类数据提供一致性的访问方式.
迭代器模式在各种语言中都有很深入,很广泛的应用,迭代器模式就是,对这种存在于语言中的基本模式的进一步应用。
迭代器模式中的两个重要的接口:
type Iterator interface {
//定义迭代器可以进行的动作
Next()
//...
}
type IEnumerator interface {
//返回一个迭代器接口
Iterator() Iterator
}
迭代器是一种管理数据的方式,往往需要一个管理数据的内在容器/集合/链表/栈等结构,需要注意的是,一般在访问上不实现为链表的访问方式,而使用滑动游标的方式。 现实生活中的景区的地图指南就是一个很好的迭代器的例子,地图就是一个迭代器,不论是哪个景区,都能通过一张地图(或者说这个迭代器),让你明白当前景区的景点数,最佳参观顺序等,游客只需要按照迭代器的方式去访问景点即可。