程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP設計模式——迭代器模式

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

編輯:關於PHP編程

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面向對象設計模式


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved