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設計模式——迭代器模式 迭代器模式:迭代器模式是遍曆集合的修正模式,迭代器模式的關鍵是將遍曆集合的任務交給一個叫做迭代器的...