設計模式 迭代器模式

2021-08-15 10:31:08 字數 718 閱讀 9689

迭代器模式

-iterator pattern

我的理解:迭代器的目的是將資料的遍歷從聚合類中分離出來,聚合類只負責增加 刪除 顯示。

將遍歷資料的行為從聚合物件中分離出來,封裝在乙個被稱之為「迭代器」的物件中,由迭代器來提供遍歷聚合物件內部資料的行為,這將簡化聚合物件的設計,更符合「單一職責原則」的要求

迭代器模式(iterator pattern):提供一種方法來訪問聚合物件,而不用暴露這個物件的內部表示,其別名為游標(cursor)。迭代器模式是一種物件行為型模式。

● 抽象迭代器:

它定義了訪問和遍歷元素的介面,宣告了用於遍歷資料元素的方法,例如:用於獲取第乙個元素的first()方法,用於訪問下乙個元素的next()方法,用於判斷是否還有下乙個元素的hasnext()方法,用於獲取當前元素的currentitem()方法等,在具體迭代器中將實現這些方法。

● 具體迭代器:

它實現了抽象迭代器介面,完成對聚合物件的遍歷,同時在具體迭代器中通過游標來記錄在聚合物件中所處的當前位置,在具體實現時,游標通常是乙個表示位置的非負整數。

● 抽象聚合類:

它用於儲存和管理元素物件,宣告乙個createiterator()方法用於建立乙個迭代器物件,充當抽象迭代器工廠角色。

● 具體聚合類:

它實現了在抽象聚合類中宣告的createiterator()方法,該方法返回乙個與該具體聚合類對應的具體迭代器concreteiterator例項。

設計模式 迭代器模式

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

設計模式 迭代器模式

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

設計模式 迭代器模式

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