設計模式之迭代器模式 行為型

2021-09-18 03:52:56 字數 1084 閱讀 5833

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

對於迭代器模式來說,乙個聚合可以有多個遍歷。在迭代器模式中,提供了乙個外部的迭代器對聚合物件進行訪問和遍歷,迭代器定義了乙個訪問聚合物件的介面,可以跟蹤遍歷元素,了解哪些元素已經遍歷過而哪些沒有。

迭代器模式中應用了工廠方法模式,聚合類充當工廠類,而迭代器充當產品類

迭代器模式本質

迭代器模式本質:將聚合物件儲存的內部資料提取出來,封裝到乙個迭代器中,通過專門的迭代器來遍歷聚合物件的內部資料,這就是迭代器模式的本質

聚合物件主要職責

聚合物件主要有兩個職責:一是儲存內部資料;二是遍歷內部資料;最基本的職責還是儲存內部資料

例子來自:《設計模式》一書

自定義迭代器

自定義迭代器

client:客戶端呼叫

myiterator:抽象迭代器

mycollection:抽象聚合類

newcollection:具體聚合類

newiterator:具體迭代器

inte***ce mycollection

inte***ce myiterator

class newcollection implements mycollection

; public myiterator createiterator()

private class newiterator implements myiterator

public void next()

} public boolean islast()

public boolean isfirst()

public object currentitem()

}}class client }

public static void main(string a)

}

在以下的情況可以使用迭代器模式:

設計模式 迭代器模式 行為型

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。適用性 1.訪問乙個聚合物件的內容而無需暴露它的內部表示。2.支援對聚合物件的多種遍歷。3.為遍歷不同的聚合結構提供乙個統一的介面 即,支援多型迭代 類結構圖head first結構圖 系統結構圖 具體迭...

設計模式 行為型 迭代器模式

迭代器模式 iterator design pattern 也叫作游標模式 cursor design pattern 用來遍歷集合物件。這裡的 集合物件 也可以叫作 容器 實際上就是包含一組物件的物件,比如陣列 鍊錶 樹 圖 跳表等,迭代器模式主要是將集合物件的遍歷操作從集合類中拆分,放到迭代器中...

設計模式 行為型 4 迭代器模式

1.模式動機 3.模式結構 迭代器模式包含如下角色 將遍歷資料的行為從聚合物件中分離出來,封裝在迭代器物件中 由迭代器來提供遍歷聚合物件內部資料的行為,簡化聚合物件的設計,更符合單一職責原則 抽象迭代器示例 public inte ce iterator 具體迭代器示例 public class c...