迭代器模式 Iterator

2021-08-17 19:14:09 字數 1381 閱讀 5215

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

針對不同的需要,可能要以不同的方式遍歷這個列表。但是即使可以預見到所需的那些遍歷操作,你可能也不希望列表的介面中充斥著各種不同遍歷的操作。有時還可能需要在同乙個表列上同時進行多個遍歷。

迭代器模式可用來:

• 訪問乙個聚合物件的內容而無需暴露它的內部表示。

• 支援對聚合物件的多種遍歷。

• 為遍歷不同的聚合結構提供乙個統一的介面 (即, 支援多型迭代)。

concreteaggregate: 具體聚集

實現iterable介面, 返回concreteiterator的乙個適當的例項;

concreteiterator : 具體迭代器

實現iterator介面(最好作為具體聚集的內部類), 對該聚集遍歷時跟蹤當前位置.

* 迭代器介面

*/public

inte***ce

myiterator

/**

* 自定義聚集類

*/public

class

concretemyaggregate

public

void

removeobject(object obj)

public listgetlist()

public

void

setlist(listlist)

//獲得迭代器

public myiterator createiterator()

//使用內部類來定義迭代器,好處就是可以直接使用外部類的屬性

private

class

concreteiterator

implements

myiterator

@override

public

void

next()

return

false;

}@override

public

boolean

isfirst()

@override

public

boolean

islast()

@override

public object getcurrentobj() }}

public

class iteratortest }}

迭代器模式(Iterator)

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

迭代器模式(Iterator)

1.目的 當需要遍歷 單種方式或多種方式 遍歷乙個組合物件時,使用遍歷模式。該模式類似與將容器的介面進行封裝,不對外直接暴露容器的介面的做法類似。2.ifndef iterator h define iterator h include include using namespace std cla...

Iterator 迭代器模式

現在有乙個集合。其內部元素的儲存方式可能比較複雜。為了讓使用者在不用關心其內部表示的情況下對其元素進行訪問,於是建立了乙個迭代器用於對集合的各個元素進行訪問。為了給使用者提供乙個更友好且強大的介面類,於是對迭代器以組合的形式進行封裝,得到乙個管理類。使用者直接操作該管理類即可得到指定元素,或通過管理...