迭代器模式

2021-09-21 18:34:54 字數 1158 閱讀 5343

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

可以按照某種一定的順序來遍歷乙個集合

迭代器抽象類,聚集抽象類,具體迭代類,具體聚集類

有乙個需要遍歷的集合

遍歷乙個集合物件

定義介面

支援以不同的方式對集合進行遍歷

新增新的集合類需要新增新的迭代類

乙個班級中的報數,要求全部報數,從頭開始

1,迭代器抽象類:它定義了訪問和遍歷元素的介面,宣告了用於遍歷資料元素的方法

abstract class iterator

2,具體的迭代器:它實現了抽象迭代器介面,完成對聚合物件的遍歷,同時在具體迭代器中通過游標來記錄在聚合物件中所處的當前位置,在具體實現時,游標通常是乙個表示位置的非負整數。

class concreteiterator : iterator

public override object first()

public override object next()

public override object currentitem()

}

3,聚集抽象類:

它用於儲存和管理元素物件,宣告乙個createiterator()方法用於建立乙個迭代器物件,充當抽象迭代器工廠角色。

abstract class aggregate

4,具體聚集類:它實現了在抽象聚合類中宣告的createiterator()方法,該方法返回乙個與該具體聚合類對應的具體迭代器concreteiterator例項。

class concreteaggregate : aggregate

public int count

}public object this[int index]

set}

}

5,客戶端**:建立乙個聚集物件,例項化乙個迭代器,,並且開始遍歷,

static void main(string args)

請買票",i.currentitem ());

i.next();

}console.read ();

}

迭代器模式

迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而不是暴露該物件的內部表示。乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。你需要對聚集有多種方式遍歷時,可以考慮用迭代器模式。為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等統一...

迭代器模式

我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...

迭代器模式

迭代器模式 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件多的內部表示。1 iterator抽象類 public abstract class iterator 2 aggregate聚集抽象類 public abstract class aggregate 3 concreteite...