設計模式-迭代器模式(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
相關文章
相關標籤/搜索