迭代器模式:迭代器模式是遍歷集合的成熟模式,迭代器模式的關鍵是將遍歷集合的任務交給一個叫做迭代器的對象,它的工作時遍歷並選擇序列中的對象,而客戶端程序員不必知道或關心該集合序列底層的結構。
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面向對象設計模式