迭代器模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器模式相关的知识,希望对你有一定的参考价值。

迭代器模式


提供单一标准接口循环或迭代任何类型的可计数数据.

示例:
class User
{
    private $name,$regTime,$money;

    public function __construct($name, $regTime)
    {
        $this->name = $name;
        $this->regTime = $regTime;
    }

    public function setMoney($money)
    {
        $this->money = $money;
    }

    public function __toString()
    {
        return "{$this->name} :  {$this->regTime} :  {$this->money}";
    }
}

class UserIterator implements Iterator
{
    private $users = array();
    private $valid = false;

    public function __construct()
    {
        try{
            $sql = "SELECT * FROM yx_users";
            $pdo = new PDO(‘mysql:host=localhost;dbname=db_zuiyouxin‘, ‘root‘, ‘root‘);
            $res = $pdo->query($sql);

            foreach ($res as $row) {
                $user = new User($row[‘name‘], $row[‘created_at‘]);
                $user->setMoney($row[‘money‘]);
                $this->users[$row[‘id‘]] = $user;
            }

            $pdo = null;
        } catch (Exception $e) {
            die(‘Error:‘ . $e->getMessage());
        }
    }

    public function current()
    {
        return current($this->users);
    }

    public function next()
    {
        $this->valid = (next($this->users) === false) ? false : true;
    }

    public function key()
    {
        return key($this->users);
    }

    public function valid()
    {
        return $this->valid;
    }

    public function rewind()
    {
        $this->valid = (reset($this->users) === false) ? false : true;
    }

}

$users = new UserIterator();

foreach ($users as $key => $val) {
    echo $key;
    echo $val;
    echo "<br>";
}

  

以上是关于迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 行为型模式 -- 迭代器模式(定义结构实例优缺点分析)

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式-迭代器模式

迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式学习