C 設計模式 Iterator迭代器模式詳解

2021-09-21 06:47:58 字數 1212 閱讀 8050

迭代器模式的概述

在現在的電視機中,我們使用[後乙個]和[前乙個]按鈕可以很方便的換台,當按下[後乙個]按鈕時,將切換到下乙個預置的頻道。想象一下在陌生的城市中的旅店中看電視。當改變頻道時,重要的不是幾頻道,而是節目內容。如果對乙個頻道的節目不感興趣,那麼可以換下乙個頻道,而不需要知道它是幾頻道。

迭代器模式的精髓

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

迭代器模式的類圖

迭代器模式的優缺點

優點:

缺點:

由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。

迭代器模式的實現要點

迭代器模式的適用性

迭代器模式的角色組成

迭代器模式的例項

#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 迭代器模式

迭代器模式定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不須要暴露該物件。迭代器分內部迭代器和外部迭代器。內部迭代器與物件耦合緊密,不推薦使用。外部迭代器與聚合容器的內部物件松耦合,推薦使用。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既能夠做到不暴露集合的內部結構...