设计模式-迭代器模式(Iterator)

迭代器设计模式可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据。
使用场景:
1.访问一个聚合对象的内容而无需暴露它的内部表示。
2.支持对聚合对象的多种遍历。
3.为遍历不同的聚合结构提供一个统一的接口(即,多态迭代)。
/**
  * 迭代器模式
  *
  * 提供一个方法顺序访问一聚合对象中的各个元素,而又不暴露对象的内部表示
 */
 interface IfIterator
 {
 	public function next();
 	public function first();
 	public function current();
 	public function isDone();
 }
 
 class SomeIterator implements IfIterator
 {
    private $_arr=array();
 
    public function __construct($arr)
    {
        $this->_arr =$arr;
    }
 
    public function first()
    {
        return $this->_arr[0];
    }
 
    public function current()
    {
        return current($this->_arr);
    }
 
    public function next()
    {
        return next($this->_arr);
    }
 
    public function isDone()
    {
    }
 }
 
 $objSomeIterator=new SomeIterator(array(1,2,3,4,6,7));
 echo $objSomeIterator->first(),"<br/>";//1
 echo $objSomeIterator->next(),"<br/>";//2
 echo $objSomeIterator->current(),"<br/>";//2
 echo $objSomeIterator->next(),"<br/>";//3
 echo $objSomeIterator->current(),"<br/>";//3


你可能感兴趣的:(设计模式-迭代器模式(Iterator))