迭代器模式的概述
在現在的電視機中,我們使用[後乙個]和[前乙個]按鈕可以很方便的換台,當按下[後乙個]按鈕時,將切換到下乙個預置的頻道。想象一下在陌生的城市中的旅店中看電視。當改變頻道時,重要的不是幾頻道,而是節目內容。如果對乙個頻道的節目不感興趣,那麼可以換下乙個頻道,而不需要知道它是幾頻道。
迭代器模式的精髓
提供一種方法順序訪問乙個聚合物件中各個元素, 而又不需暴露該物件的內部表示。
迭代器模式的類圖
迭代器模式的優缺點
優點:
缺點:
由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。
迭代器模式的實現要點
迭代器模式的適用性
迭代器模式的角色組成
迭代器模式的例項
#include
#include
using namespace std;
template
class iterator
};template
class concreteaggregate;
template
class concreteiterator : public iterator
virtual void
first()
virtual void
next()
virtual item*
currentitem()
virtual bool isdone()
};template
class aggregate
};template
class concreteaggregate:public aggregate
virtual iterator
*createiterator()
item& operator(
int index)
intgetlen()
};intmain()
delete it;
delete aggr;
return0;
}
參考原文: 設計模式 迭代模式Iterator
提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。1 訪問乙個聚合的物件,而不需要暴露物件的內部表示 2 支援對聚合物件的多種遍歷 3 對遍歷不同的物件,提供統一的介面。iterator 定義訪問的介面 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式 author xing...
C 設計模式 iterator 迭代器模式
迭代器模式定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不需要暴露該物件。迭代器分內部迭代器和外部迭代器,內部迭代器與物件耦合緊密,不推薦使用。外部迭代器與聚合容器的內部物件松耦合,推薦使用。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構...
C 設計模式 iterator 迭代器模式
迭代器模式定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不須要暴露該物件。迭代器分內部迭代器和外部迭代器。內部迭代器與物件耦合緊密,不推薦使用。外部迭代器與聚合容器的內部物件松耦合,推薦使用。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既能夠做到不暴露集合的內部結構...