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

2022-02-28 08:11:15 字數 1406 閱讀 6722

迭代器在stl運用廣泛,類似容器的迭代已經成為其重要特性,而迭代器模式則是利用迭代器概念進行的抽象運用,迭代器模式運用廣泛和有用,因為其能夠不考慮資料的儲存方式,而是直接面對資料進行迭代,也就是說我們不用考慮集合是陣列(或vector)、鍊錶、棧還是佇列,而是通過統一的介面進行順序的訪問。

迭代器模式提供了一種順序訪問容器中元素的方法,而無需了解器內部的型別和結構,該模式的核心思想將訪問和遍歷容器物件的功能交給乙個外部的迭代器物件,該迭代器定義了訪問聚合物件的介面,

}對於上例來說,iterator介面是不變的,不管menu中的聚合內容的形式如何變化,只要menu根據其型別提供其取值、大小等的操作,那麼對於使用者來說都是一樣的操作。

訪問乙個聚合物件的內容而無需暴露它的內部表示;

支援對聚合物件的多種遍歷(從前到後,從後到前);

為遍歷不同的聚合結構提供乙個統一的介面,支援多型迭代。

設計模式之迭代器模式

概念 提供一種方法順序訪問乙個聚合物件中各個元素,而又不需暴露該物件的內部表示。main 客戶 iproject,產品介面 cproject,產品類 iiterator,迭代器介面 iprojectiterator,產品迭代器介面 cprojectiterator,產品迭代器實現類 說明 cproj...

設計模式之迭代器模式

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

設計模式之迭代器模式

說起迭代器,大家一定不陌生,經常使用的foreach in 這種迴圈就是,c 語言已經內建化了迭代器模式,主要是支援對非泛型集合的簡單迭代介面ieumerator和公開列舉數ienumerable。雖然內建了,但是這種模式也有我們學習的必要性。如下 using system using system...