*为什么我们甚至需要Iterator模式?*

时间:2016-12-16 14:09:24

标签: php design-patterns design-principles

所以我放松了所有的放松和嘘声,翻新我的设计模式知识,一切顺利和花花公子,等待周末肾上腺素开始。我的生活无法更顺畅。接下来你知道的事情......我得到了生命日的最大认识。

为什么我们需要Iterator模式?或者更好地表达为

我们甚至需要在今天的时代使用Iterator模式吗?

因为我是本地PHP发言人。不用脑子,我正在经历this official DOC

因此,通过评论中的各种Rube Goldberg-ish示例,该模式继续创建将数组传递给它们的各种对象,但最终只使用foreach()while()迭代项目。我的问题是在这个模式适合的宏观方案中的位置,或者我们最好只是首先迭代array本身或一如既往......

我错过了什么吗?

示例:

<?php
class myIterator implements Iterator 
    {
    private 
        $_array = array();
    public function __construct(array $array) 
        {
        $this->_array = $array;
        }
    public function rewind() 
        {
        reset($this->_array);
        }
    public function current() 
        {
        return current($this->_array);
        }
    public function key() 
        {
        return key($this->_array);
        }
    public function next() 
        {
        next($this->_array);
        }
    public function valid() 
        {
        return $this->key() !== null;
        }
    }

$it = new myIterator(array('foo_1' => 'bar_1','foo_2' => 'bar_2'));

//example 1 : foreach

foreach($it as $key => $value) 
    {
    var_dump($key, $value);
    }

//example 2 : while

$it -> rewind();
while($it->valid())
    {
    var_dump($it->key(), $it->current());

    $it->next();
    }

//example 3 : for

for($it->rewind();$it->valid();$it->next())
    {
   var_dump($it->key(), $it->current());
    }
?>

0 个答案:

没有答案