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 具體迭代器。利用這個具體的迭代器能夠對具體的聚合物件進...