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