爱程序网

PHP设计模式 迭代器模式

来源: 阅读:

迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。相比于传统的编程模式,迭代器模式可以隐藏遍历元素所需要的操作。

AllHacl.php

<?phpnamespace Baobab;class AllHacl implements iterator{    protected $ids;protected $index;//当前位置    function __construct(){        $db = Factory::getDatabase('ha_cl');        $result = $db->query('select ID from ha_cl');        $this->ids = $result->fetch_all(MYSQLI_ASSOC);    }
  /**
   * 返回当前元素
   */
function current(){ $id = $this->ids[$this->index]['ID']; return Factory::getHacl($id); }
  /**
   * 向前移动到下一个元素
   */
function next(){ $this->index ++; } /** * 返回到迭代器的第一个元素 */ function rewind(){ $this->index = 0; } /** * 查询当前位置是否有数据 */ function valid(){ return $this->index - count($this->ids); }
  /**
   * 返回当前元素的键
   */
function key(){ return $this->index; }}

index.php

$hacls = new BaobabAllHacl();foreach($hacls as $hacl){    var_dump($hacl->haclname);}

Hacl类相关内容参考数据对象映射模式。http://www.cnblogs.com/tianxintian22/p/5232016.html

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助