設計模式系列
提供一種方法順序訪問乙個聚合物件中各個元素,而又不需暴露該物件的內部表示。、
—— 迭代器定義訪問和遍歷元素的介面。
—— 具體迭代器實現迭代器介面。
—— 對該聚合遍歷時跟蹤當前位置。
—— 聚合定義建立相應迭代器物件的介面。
—— 具體聚合實現建立相應迭代器的介面,該操作返回concretelterator的乙個適當的例項。
優點:
1)支援以不同的方式遍歷乙個聚合物件
2)在同乙個聚合物件上可以定義多種遍歷方式 簡化了聚合類
3)由於引入了抽象層,增加新的聚合類和迭代器類都很方便,無須修改原有**,符合開閉原則
缺點:
1)在增加新的聚合類時需要對應地增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性
2)抽象迭代器的設計難度較大,需要充分考慮到系統將來的擴充套件。在自定義迭代器時,建立乙個考慮全面的抽象迭代器並不是一件很容易的事情
設計模式系列
迭代器模式(Iterator)
迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。當你需要訪問乙個聚合物件,而且不管這些物件是什麼都需要遍歷的時候,就應該考慮使用迭代器模式。另外,當需要對聚集有多種方式遍歷時,可以考慮去使用迭代器模式。迭代器模式為遍歷不同的聚集結構提供如開始 ...
迭代器模式(Iterator)
1.目的 當需要遍歷 單種方式或多種方式 遍歷乙個組合物件時,使用遍歷模式。該模式類似與將容器的介面進行封裝,不對外直接暴露容器的介面的做法類似。2.ifndef iterator h define iterator h include include using namespace std cla...
Iterator 迭代器模式
現在有乙個集合。其內部元素的儲存方式可能比較複雜。為了讓使用者在不用關心其內部表示的情況下對其元素進行訪問,於是建立了乙個迭代器用於對集合的各個元素進行訪問。為了給使用者提供乙個更友好且強大的介面類,於是對迭代器以組合的形式進行封裝,得到乙個管理類。使用者直接操作該管理類即可得到指定元素,或通過管理...