迭代器模式在我們日常程式設計中使用非常頻繁,像list、map、陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。
在迭代器模式結構圖中包含如下幾個角色:
它支援以不同的方式遍歷乙個聚合物件。
迭代器簡化了聚合類。
在同乙個聚合上可以有多個遍歷。
在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有**。
由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。
有興趣的同學可以看看list、map的原始碼,看看iterator的實現。在迭代器模式中,提供了乙個外部的迭代器來對聚合物件進行訪問和遍歷,迭代器定義了乙個訪問該聚合元素的介面,並且可以跟蹤當前遍歷的元素,了解哪些元素已經遍歷過而哪些沒有。迭代器的引入,將使得對乙個複雜聚合物件的操作變得簡單。
設計模式 迭代器模式
迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...
設計模式 迭代器模式
iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...
設計模式 迭代器模式
個人理解 1.迭代器模式 提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。2.迭代器模式結構 iterator 抽象迭代器 所有迭代器都需要實現的介面,提供了遊走聚合物件元素之間的方法。concreteiterator 具體迭代器。利用這個具體的迭代器能夠對具體的聚合物件進...