摘要:在不需要了解內(nèi)部實(shí)現(xiàn)的前提下,遍歷一個(gè)聚合對(duì)象的內(nèi)部元素而又不暴露該對(duì)象的內(nèi)部表示,這就是PHP迭代器模式的定義。適用場(chǎng)景:訪問一個(gè)聚合對(duì)象的內(nèi)容而無需暴露它的內(nèi)部表示支持對(duì)聚合對(duì)象的多種遍歷為遍歷不同的聚合結(jié)構(gòu)提供一個(gè)統(tǒng)一的接口迭代器模式實(shí)例:<?php class ConcreteIterator implements Iterator{ pri
在不需要了解內(nèi)部實(shí)現(xiàn)的前提下,遍歷一個(gè)聚合對(duì)象的內(nèi)部元素而又不暴露該對(duì)象的內(nèi)部表示,這就是PHP迭代器模式的定義。
適用場(chǎng)景:
訪問一個(gè)聚合對(duì)象的內(nèi)容而無需暴露它的內(nèi)部表示
支持對(duì)聚合對(duì)象的多種遍歷
為遍歷不同的聚合結(jié)構(gòu)提供一個(gè)統(tǒng)一的接口
迭代器模式實(shí)例:
<?php class ConcreteIterator implements Iterator{ private $position = 0; private $arr; function __construct(array $arr){ $this->arr = $arr; } function rewind(){ $this->position = 0; } function current(){ return $this->arr[$this->position]; } function key(){ return $this->position; } function next(){ ++$this->position; } function valid(){ return isset($this->arr[$this->position]); } } $arr = array('xiao hong','xiao ming','xiaohua'); $concreteIterator = new ConcreteIterator($arr); foreach ($concreteIterator as $key => $value) { echo $key."=>".$value."\n"; }
更多關(guān)于PHP設(shè)計(jì)模式之迭代器模式請(qǐng)關(guān)注PHP中文網(wǎng)(m.miracleart.cn)其它文章!