iterator 迭代器 行為模式,提供一種順序訪問乙個聚合物件中的各個元素的方法,而又不破壞該聚合物件的內部表示。
別名游標,這個模式,在composite模式的例子一時實際上已經用到了,而且在flex中的也是有的。比如,flex中有個類叫arraycolllection有乙個方法叫createcursor():iviewcursor。iterator模式還是比較好理解的。
迭代器模式由一下幾種組成元素:
迭代器介面:用於對幾何資料進行迭代的介面
具體迭代器
集合介面
具體集合
下面來看一下**:
iiterator.as
package
}
來看乙個具體的迭代器
arrayiterator.as
package
public function hasnext():boolean
public function next():object
public function reset():void }}
有種特殊的迭代器,叫null迭代器,使用null迭代器可以建立乙個和介面緊密相連、但不用包含任何集合資料的類。如下定義:
nulliterator.as
package
public function hasnext():boolean
public function next():object
public function reset():void {}}}
行為型模式 迭代器 iterator
提供一種方法順序訪問乙個聚合物件中各個元素,而又不需暴露該物件的內部表示.main.cc include include runner club.h include runner iterator.h include using namespace std design pattern iterat...
Iterator迭代器(行為型模式)
在軟體構建過程中,集合物件內部結構常常變化各異。但對於這些集合物件,我們希望在不暴露其內部結構的同時,可以讓外部客戶 透明地訪問其中包含的元素 同時這種透明遍歷也為同一種演算法在多種集合物件上進行操作提供了可能。使用物件導向技術將這種遍歷機制抽象為迭代器物件為應對變化中的集合物件提供了一種優雅的方式...
四 迭代器模式Iterator(行為型模式)
迭代器模式為順序訪問集合物件的元素提供一種方式,且不暴露其底層表示法。就資料結構而言,它們把複雜的瀏覽途徑部分委託給iterator類別。讓其資料結構能與各式各樣的iterator類別搭配,而且分和自如。因而iterator類別包容了資料結構 如arraylist和database 的多變性,非常有...