提供一種方法順序訪問乙個聚合物件中的各個元素,而不是暴露其內部的表示。
php spl中已經提供了迭代器介面iterator和容器介面iteatoraggragate,這裡直接實現spl的裡的迭代器。
<?php
/** * 迭代器模式
*///concreteiterator:具體迭代器
class
concreteiterator
implements
iterator
public
function
rewind
() public
function
valid
() public
function
current
() public
function
key()
public
function
next()}
//concreteaggregate:具體聚合類
class
concreteaggregate
implements
iteratoraggregate
public
function
getiterator()}
$arr = array(5,8,1,3,2);
$a=new concreteaggregate($arr);
$b=$a->getiterator();
foreach($b
as$key=>$value)
string
'0:5
' (length=8)
string
'1:8
' (length=8)
string
'2:1
' (length=8)
string
'3:3
' (length=8)
string
'4:2
' (length=8)
PHP設計模式系列 迭代器
可幫助構造特定的物件,那些物件能夠提供單一標準介面迴圈或迭代任何型別的可計數資料。不是特別常用,在php中 1.訪問乙個聚合物件的內容而無需暴露它的內部表示。2.支援對聚合物件的多種遍歷。3.為遍歷不同的聚合結構提供乙個統一的介面 即,多型迭代 迭代器 可幫助構造特定的物件,那些物件能夠提供單一標準...
PHP設計模式系列 迭代器
可幫助構造特定的物件,那些物件能夠提供單一標準介面迴圈或迭代任何型別的可計數資料。不是特別常用,在php中 1.訪問乙個聚合物件的內容而無需暴露它的內部表示。2.支援對聚合物件的多種遍歷。3.為遍歷不同的聚合結構提供乙個統一的介面 即,多型迭代 php 實現 迭代器 可幫助構造特定的物件,那些物件能...
設計模式(十五)迭代器模式
1 定義 提供乙個物件來順序訪問聚合物件中的一系列資料,而不暴露聚合物件的內部表示。是一種物件行為型模式。2 優缺點 優點封裝性好,為遍歷不同的聚合結構提供乙個統一的介面 訪問乙個聚合物件的內容而無須暴露它的內部表示 遍歷任務交由迭代器完成,這簡化聚合類 支援以不同方式遍歷乙個聚合,甚至可以自定義迭...