PHP設計模式系列(十五) 迭代器模式

2021-07-31 10:10:10 字數 1155 閱讀 6144

提供一種方法順序訪問乙個聚合物件中的各個元素,而不是暴露其內部的表示。

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 優缺點 優點封裝性好,為遍歷不同的聚合結構提供乙個統一的介面 訪問乙個聚合物件的內容而無須暴露它的內部表示 遍歷任務交由迭代器完成,這簡化聚合類 支援以不同方式遍歷乙個聚合,甚至可以自定義迭...