迭代器模式

2022-09-16 18:18:16 字數 1082 閱讀 8932

迭代器模式(iterator pattern)是 j**a 和 .net 程式設計環境中非常常用的設計模式。這種模式用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。

迭代器模式屬於行為型模式。

意圖:提供一種方法順序訪問乙個聚合物件中各個元素, 而又無須暴露該物件的內部表示。

主要解決:不同的方式來遍歷整個整合物件。

何時使用:遍歷乙個聚合物件。

如何解決:把在元素之間遊走的責任交給迭代器,而不是聚合物件。

關鍵**:定義介面:hasnext, next。

應用例項:j**a 中的 iterator。

優點:1、它支援以不同的方式遍歷乙個聚合物件。 2、迭代器簡化了聚合類。 3、在同乙個聚合上可以有多個遍歷。 4、在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有**。

缺點:由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。

使用場景:1、訪問乙個聚合物件的內容而無須暴露它的內部表示。 2、需要為聚合物件提供多種遍歷方式。 3、為遍歷不同的聚合結構提供乙個統一的介面。

注意事項:迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部**透明地訪問集合內部的資料。

我們將建立乙個敘述導航方法的 iterator 介面和乙個返回迭代器的 container 介面。實現了 container 介面的實體類將負責實現 iterator 介面。

iteratorpatterndemo,我們的演示類使用實體類 namesrepository 來列印 namesrepository 中儲存為集合的 names。

迭代器模式

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

迭代器模式

我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...

迭代器模式

迭代器模式 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件多的內部表示。1 iterator抽象類 public abstract class iterator 2 aggregate聚集抽象類 public abstract class aggregate 3 concreteite...