迭代器模式定義:提供一種方法順序訪問乙個聚合物件中各個元素,而又不須要暴露該物件。
迭代器分內部迭代器和外部迭代器。內部迭代器與物件耦合緊密,不推薦使用。
外部迭代器與聚合容器的內部物件松耦合,推薦使用。
迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既能夠做到不暴露集合的內部結構,又可讓外部**透明地訪問集 合內部的資料。
並且,能夠同一時候
定義多個迭代器來遍歷。互不衝突。
對於迭代器,參考stl迭代器,僅僅須要使用詳細容器的迭代器就能夠遍歷該容器內的聚合物件。也能夠借助迭代器實現物件的諸如加入、刪除和呼叫。
1.迭代器角色(iterator):迭代器角色負責定義訪問和遍歷元素的介面。
2.詳細迭代器角色(concrete iterator):詳細迭代器角色要實現迭代器介面,並要記錄遍歷中的當前位置。
3.集合角色(aggregate):集合角色負責提供建立詳細迭代器角色的介面。
4.詳細集合角色(concrete aggregate):詳細集合角色實現建立詳細迭代器角色的介面——這個詳細迭代器角色於該集合的結構相關。
c++迭代器模式(與stl介面保持一致)**:
#include #include using namespace std;
templateclass iterator
};templateclass concreteaggregate;
templateclass concreteiterator : public iterator
virtual void first()
virtual void next()
virtual item* currentitem()
virtual bool isdone()
};templateclass aggregate
};templateclass concreteaggregate:public aggregate
virtual iterator* createiterator()
item& operator(int index)
int getlen()
};int main()
delete it;
delete aggr;
return 0;
}
設計模式 迭代模式Iterator
提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。1 訪問乙個聚合的物件,而不需要暴露物件的內部表示 2 支援對聚合物件的多種遍歷 3 對遍歷不同的物件,提供統一的介面。iterator 定義訪問的介面 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式 author xing...
C 設計模式 iterator 迭代器模式
迭代器模式定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不需要暴露該物件。迭代器分內部迭代器和外部迭代器,內部迭代器與物件耦合緊密,不推薦使用。外部迭代器與聚合容器的內部物件松耦合,推薦使用。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構...
C 設計模式 Iterator迭代器模式詳解
迭代器模式的概述 在現在的電視機中,我們使用 後乙個 和 前乙個 按鈕可以很方便的換台,當按下 後乙個 按鈕時,將切換到下乙個預置的頻道。想象一下在陌生的城市中的旅店中看電視。當改變頻道時,重要的不是幾頻道,而是節目內容。如果對乙個頻道的節目不感興趣,那麼可以換下乙個頻道,而不需要知道它是幾頻道。迭...