go-pattern-examples/behavior/04_iterator/README.md

25 lines
1.2 KiB
Markdown
Raw Normal View History

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