PHP設計模式——迭代器模式_PHP教程

來源:互聯網
上載者:User

PHP設計模式——迭代器模式


迭代器模式:迭代器模式是遍曆集合的修正模式,迭代器模式的關鍵是將遍曆集合的任務交給一個叫做迭代器的對象,它的工作時遍曆並選擇序列中的對象,而用戶端程式員不必知道或關心該集合序列底層的結構。

UML類圖:

角色:

Iterator(迭代器):迭代器定義訪問和遍曆元素的介面

ConcreteIterator(具體迭代器):具體迭代器實現迭代器介面,對該彙總遍曆時跟蹤當前位置

Aggregate (彙總):彙總定義建立相應迭代器對象的介面(可選)

ConcreteAggregate(具體彙總):具體彙總實現建立相應迭代器的介面,該操作返回ConcreteIterator的一個適當的執行個體(可選)

核心代碼:

aggre = $_aggre;    }    //返回第一個    public function First()    {        return $this->aggre[0];    }    //返回下一個    public function  Next()    {        $this->current++;        if($this->currentaggre))        {            return $this->aggre[$this->current];        }        return false;    }    //返回是否IsDone    public function IsDone()    {        return $this->current>=count($this->aggre)?true:false;    }    //返回當前聚集對象    public function CurrentItem()    {        return $this->aggre[$this->current];    }}

調用用戶端測試代碼:

header(Content-Type:text/html;charset=utf-8);//--------------------------迭代器模式-------------------require_once ./Iterator/Iterator.php;$iterator= new ConcreteIterator(array('周杰倫','王菲','周潤發'));$item = $iterator->First();echo $item.;while(!$iterator->IsDone()){    echo {$iterator->CurrentItem()}:請買票!;    $iterator->Next();}

使用情境:

1.訪問一個彙總對象的內容而無需暴露它的內部表示

2.支援對彙總對象的多種遍曆

3.為遍曆不同的彙總結構提供一個統一的介面

歡迎關注我的視訊課程,地址如下,謝謝。

PHP物件導向設計模式


http://www.bkjia.com/PHPjc/1015086.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1015086.htmlTechArticlePHP設計模式——迭代器模式 迭代器模式:迭代器模式是遍曆集合的修正模式,迭代器模式的關鍵是將遍曆集合的任務交給一個叫做迭代器的...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.