11 迭代器模式

2021-07-10 08:05:58 字數 1222 閱讀 5227

//乙個迭代器的實現,必須繼承 spl 中的迭代器介面 \iterator

class

alluser

implements \iterator

//對於乙個迭代器來說,有5個方法必須實現

//重置整個迭代器,回到整個集合的開頭

public

function

rewind

()

//驗證當前是否還有下乙個元素

public

function

valid

()

//獲取當前元素

public

function

current

()

//下乙個元素

public

function

next

()

//表示在迭代器中的位置

public

function

key()

}factory.php

<?php 

namespace

imooc;

class

factory

public

static

function

getuser

($id)

return

$user;

}static

function

getdatabase

()

}

11 迭代器模式

利用相同介面可以遍歷不同集合 聚集 且不暴露集合內部的元素。書中的例子 a餐廳和b餐廳合併,他們的選單擁有不同的儲存方法,如a餐廳用陣列array,而b餐廳用list。這樣帶來的問題是在列印選單項的時候需要分別遍歷他們各種的選單,這樣處理不僅麻煩,而且不利於擴充套件,當有更多的餐廳被合併的時候,會帶...

迭代器模式

迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而不是暴露該物件的內部表示。乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。你需要對聚集有多種方式遍歷時,可以考慮用迭代器模式。為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等統一...

迭代器模式

我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...