設計模式 迭代器模式

2021-07-09 08:51:41 字數 1958 閱讀 1644

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

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

iterator迭代器抽象類

/// /// 迭代器抽象類

///

abstract class iterator

aggregate聚集抽象類

/// ///聚集抽象類

///

abstract class aggregate

concreteiterator具體迭代器類,繼承

iterator

。跟蹤聚合中的當前物件,並能夠計算出待遍歷的後繼物件。

/// /// 具體迭代器類,繼承iterator

///

class concreteiterator:iterator

public override object first()

public override object next()

public override object currentitem()

}

concreteaggregate

具體聚集類,繼承

aggregate

。具體聚合實現建立相應迭代器的介面,該操作返回concreteiterator的乙個適當的例項。

/// /// 具體聚集類,繼承aggregate

///

class concreteaggregate :aggregate

public int count

//返回聚集總個數

}public object this[int index]

set }}

class program

請買車票!", i.currentitem()); //對面前的乘客告知請買票

i.next(); //下一乘客

1.當需要乙個聚集物件,而且不管這些物件是什麼都需要遍歷時;

2.為遍歷不同的聚集結構提供統一的介面時;

3.需要對聚集有多種方法遍歷時。

1、它支援以不同的方式遍歷乙個聚合物件。

2、迭代器簡化了聚合的介面

3、在同乙個聚合上可以有多個遍歷。

4、在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有**。

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

設計模式 迭代器模式

迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...

設計模式 迭代器模式

迭代器模式在我們日常程式設計中使用非常頻繁,像list map 陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。在迭代器模式結構圖中包含如下幾個角色 它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。...

設計模式 迭代器模式

個人理解 1.迭代器模式 提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。2.迭代器模式結構 iterator 抽象迭代器 所有迭代器都需要實現的介面,提供了遊走聚合物件元素之間的方法。concreteiterator 具體迭代器。利用這個具體的迭代器能夠對具體的聚合物件進...