顧名思義,迭代器模式就是順序訪問聚集中的物件,一般來說,集合中非常常見,如果對集合模擬較熟悉的話,理解本模式會十分輕鬆。這句話包含兩層意思:一是需要遍歷的物件,即聚集物件,二是迭代器物件,用於對聚集物件進行遍歷訪問。我們看下關係圖:
這個思路和我們常用的一模一樣,mycollection中定義了集合的一些操作,myiterator中定義了一系列迭代操作,且持有collection例項,我們來看看實現**:兩個介面:
public
inte***ce collection
public
inte***ce iterator
兩個實現:
public
class
mycollection
implements
collection ;
@override
public iterator iterator()
@override
public object get(int i)
@override
public
intsize()
}
public
class
myiterator
implements
iterator
@override
public object previous()
return collection.get(pos);
} @override
public object next()
return collection.get(pos);
} @override
public
boolean
hasnext() else
} @override
public object first()
}
測試類:
public
class test
} }
輸出:a b c d e
此處我們貌似模擬了乙個集合類的過程,感覺是不是很爽?其實jdk中各個類也都是這些基本的東西,加一些設計模式,再加一些優化放到一起的,只要我們把這些東西學會了,掌握好了,我們也可以寫出自己的集合類,甚至框架!
設計模式 迭代子模式
定義 迭代子模式可以順序地訪問乙個聚集中的元素而不必暴露聚集的內部表象。我們常見的集合有很多種類,其頂層資料儲存和組織方式的不同導致了我們在對資料進行遍歷的時候存在一些差異,迭代器模式就是通過實現某種統一的方式來實現對不同的集合的遍歷,同時又不暴露出其底層的資料儲存和組織方式。結構 實現 publi...
設計模式 迭代子模式(Iterator)
迭代器模式就是順序訪問聚集中的物件。一是需要遍歷的物件,即聚集物件,二是迭代器物件,用於對聚集物件進行遍歷訪問。這個思路和我們常用的一模一樣,mycollection中定義了集合的一些操作,myiterator中定義了一系列迭代操作,且持有collection例項,我們來看看實現 兩個介面 publ...
2010 02 23 設計模式之單子模式
單子模式的經典應用 思路比較清晰,寫的過程也比較明白,希望跟我一起在學習開發的人學可以好好參考下 using system using system.collections.generic using system.text namespace singletion 第二步 在外不能new它,那要用...