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

2021-10-19 10:00:22 字數 1011 閱讀 9872

提供乙個物件來順序訪問聚合物件中的一系列物件,而不暴露聚合物件的內部表示。屬於一種物件行為型模式。

優點訪問聚合物件內部無需暴露它的內部表示;

遍歷任務交由迭代器完成,簡化了聚合類;

它支援以不同方式遍歷乙個聚合,甚至可以自定義迭代器的子類以支援新的遍歷;

增加新的聚合類和迭代器類很方便,無需修改原有**;

封裝性良好,為遍歷不同的聚合結構提供1乙個統一的介面。 缺點

增加了類的個數,在一定程度上增加了系統的複雜度。

結構主要角色: 類圖

實現

inte***ce

aggregate

// 具體聚合

class

concreteaggregate

implements

aggregate

public

void

remove

(object obj)

public iterator getiterator()

}// 抽象迭代器

inte***ce

iterator

// 具體迭代器類

class

concreteiterator

implements

iterator

public

boolean

hasnext()

else

}public object first()

public object next()

return obj;}}

// 呼叫客戶端

class

iteratorpattern

object first = it.

first()

;// first 列印輸出

}}

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

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

行為型模式 迭代器模式

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

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

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