行為型模式 4 迭代器模式Iterator

2021-10-01 04:08:13 字數 416 閱讀 7232

對於迭代在程式設計過程中我們經常用到,能夠遊走於聚合內的每乙個元素,同時還可以提供多種不同的遍歷方式,這就是迭代器模式的設計動機。在我們實際的開發過程中,我們可能會需要根據不同的需求以不同的方式來遍歷整個物件,但是我們又不希望在聚合物件的抽象介面中充斥著各種不同的遍歷操作,於是我們就希望有某個東西能夠以多種不同的方式來遍歷乙個聚合物件,這時迭代器模式出現了。

何為迭代器模式?所謂迭代器模式就是提供一種方法順序訪問乙個聚合物件中的各個元素,而不是暴露其內部的表示。迭代器模式是將迭代元素的責任交給迭代器,而不是聚合物件,我們甚至在不需要知道該聚合物件的內部結構就可以實現該聚合物件的迭代。

通過迭代器模式,使得聚合物件的結構更加簡單,它不需要關注它元素的遍歷,只需要專注它應該專注的事情,這樣就更加符合單一職責原則了。

迭代器模式包含如下角色:

行為型模式 迭代器模式

迭代器模式 iterator 用於依序遍歷訪問集合物件的每一元素,但不暴露集合物件的內部結構,只允許讓外部來訪問集合內部的資料,在實作上通常會抽象出乙個迭代器類並含有 hasnext 及next 之介面定義 再由其繼承具體子類負責集合物件的遍歷行為之功能。示例 from abc import abc...

行為型模式(四) 迭代器模式

迭代器 iterator 模式 提供乙個物件來順序訪問聚合物件中的一系列資料,而不暴露聚合物件的內部表示。迭代器模式是一種物件行為型模式,優點 1 訪問乙個聚合物件的內容而無須暴露它的內部表示。2 遍歷任務交由迭代器完成,這簡化了聚合類。3 它支援以不同方式遍歷乙個聚合,甚至可以自定義迭代器的子類以...

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

抽象聚合類 abstract class abstractobjectlist public void addobject object obj public void removeobject object obj public list getobjects 宣告建立迭代器物件的抽象工廠方法 p...