首页 > 其他 > 详细

迭代器模式

时间:2016-12-24 22:39:13      阅读:325      评论:0      收藏:0      [点我收藏+]
定义:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
好处:相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作

$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;
}
}




迭代器模式

原文:http://www.cnblogs.com/phonecom/p/cc5902329c5cee3164670b128291264f.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!