0x00 迭代器模式
迭代器类似于一个数据库中(MySQL的游标是单向的)的游标,可以在一个容器内翻滚,遍历所有的查看的元素.
定义
Provide a way to access the elements of an arrgegate object sequentially without exposing its underlying representation.(它提供一种方法访问容器对象中的各个元素,而又不需暴露对象的内部细节.)
角色
- Iterator 抽象迭代器, 定义和遍历元素的接口, 一般有固定的三个方法: first(), next(), hasNext().
- ConcreteIterator 具体迭代器, 具体实现迭代器接口.
- Aggregate 抽象容器, 提供创建具体迭代器角色的接口.
- ConcreteAggregate 具体容器, 创建迭代器的对象.
php实现
1 |
|
php 中自有的 Iterator 接口
1 | Iterator extends Traversable { |
提供了好几个方法.
0x01 小结
渐渐能摸着一些门道了.