設計模式 迭代器模式(Iterator)

2021-08-01 02:38:13 字數 953 閱讀 1667

顧名思義,迭代器模式就是順序訪問集合中的物件,一般來說,集合中非常常見,如果對集合模擬較熟悉的話,理解本模式會十分輕鬆。這句話包含兩層意思:一是需要遍歷的物件,即聚集物件,二是迭代器物件,用於對聚集物件進行遍歷訪問。我們看下關係圖:

這個思路和我們常用的一模一樣,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 int size()

}

public class myiterator implements iterator   

@override

public object previous()

return collection.get(pos);

} @override

public object next()

} }

輸出:a b c d e

此處我們貌似模擬了乙個集合類的過程,感覺是不是很爽?其實jdk中各個類也都是這些基本的東西,加一些設計模式,再加一些優化放到一起的,只要我們把這些東西學會了,掌握好了,我們也可以寫出自己的集合類,甚至框架!

設計模式 迭代器模式

迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...

設計模式 迭代器模式

iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...

設計模式 迭代器模式

迭代器模式在我們日常程式設計中使用非常頻繁,像list map 陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。在迭代器模式結構圖中包含如下幾個角色 它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。...