首页 > 代码库 > 迭代器模式
迭代器模式
定义:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
好处:相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作
$users = new \IMooc\AllUser();
foreach ($users as $user)
{
var_dump($user);
}
<?php
namespace IMooc;
class AllUser implements \Iterator
{
protected $ids;
protected $data = array();
protected $index;
function __construct()
{
$db = new \IMooc\Database\MySQLi();
$db->connect(‘127.0.0.1‘, ‘root‘, ‘root‘,‘test‘);
$result = $db->query("select id from user");
$this->ids = $result->fetch_all(MYSQLI_ASSOC);
}
//返回当前的数据
function current()
{
$id = $this->ids[$this->index][‘id‘];
return Factory::getUser($id);
}
//将索引值向下移动
function next()
{
$this->index ++;
}
//查询当前是否有数据
function valid()
{
return $this->index < count($this->ids);
}
//将迭代器移动到集合的开头
function rewind()
{
$this->index = 0;
}
//返回当前key
function key()
{
return $this->index;
}
}
<?php
namespace IMooc;
class Factory
{
static function getUser($id)
{
$key = ‘user_‘.$id;
$user = Register::get($key);
if (!$user)
{
$user = new User($id);
Register::set($key, $user);
}
return $user;
}
}
来自为知笔记(Wiz)
迭代器模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。