<?php
/**迭代器模式 :迭代器(iterator)模式,又叫做游標(cursor)模式。gof給出的定義為:
提供一種方法訪問乙個容器(container)物件中各個元素,而又不需暴露該物件的內部細節。
迭代器模式是為容器而生。很明顯,對容器物件的訪問必然涉及到遍歷演算法。你可以一股腦的將遍歷方法塞到容器物件中去;
或者根本不去提供什麼遍歷演算法,讓使用容器的人自己去實現去吧。
(1) 需要乙個容器
(2) 遍歷方法即可
迭代器模式由以下角色組成:
1) 迭代器角色(iterator):迭代器角色負責定義訪問和遍歷元素的介面。
2) 具體迭代器角色(concrete iterator):具體迭代器角色要實現迭代器介面,並要記錄遍歷中的當前位置。
3) 容器角色(container):容器角色負責提供建立具體迭代器角色的介面。
*///(1)迭代器(iterator):在迭代過程上的抽象,包括next(),isfinished(),current()等方法。
//(2)具體迭代器(concreteiterators):在乙個特定的物件集,如陣列,樹,組合,集合等上實現迭代。
//(1) 如果使用php 內部的iterator
class myiterator implements iterator
// 獲取當前
function current()
// 下個index
function next()
//獲得key(下標)
function key()
function value()
// 重新遍歷
function rewind()
function valid()
}// 應用
/*$adata = array('a','b','c');
$myiterator = new myiterator($adata);
while($myiterator->valid())
*/// (2)搭建自己的容器
inte***ce container
class mycontainer implements container
public function getiterator() }
// 應用例項
$data = array('a','b','c');
$mycontainer = new mycontainer($data) ;
// 獲得迭代器
$myiterator = $mycontainer->getiterator();
while($myiterator->valid())
PHP 設計模式之迭代器模式
在不需要了解內部實現的前提條件下,可以遍歷乙個聚合物件的內部元素 相比於傳統的程式設計模式,迭代器模式可以隱藏遍歷元素所需的操作 class alluser implements iterator public function current public function next 第乙個呼叫 ...
PHP設計模式之PHP迭代器模式講解
迭代器有時又稱游標 cursor 是程式設計的軟體設計模式,可在容器物件 container,例如list或vector 上遍訪的介面,設計人員無需關心容器物件的內容。各種語言實作iterator的方式皆不盡同,有些物件導向語言像j a,c python,delphi都已將iterator的特性內建...
PHP設計模式 迭代器模式
web開發筆記 www.chhua.com 每日練習 php設計模式 迭代器模式 呵呵,迭代器模式是php開發中非常有用的乙個設計模式,其主要的應用範圍如下 一 使用返回迭代器的包或庫時 如php5中的spl迭代器 二 無法在一次的呼叫獲取容器的所有元素時 三 要處理數量巨大的無素時 資料庫中的表以...