設計模式 迭代器模式

2021-09-30 10:12:07 字數 830 閱讀 8801

定義

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

場景:我們有兩個聚合a和b,有乙個聚合管理的類,包含聚合a和b,而這個管理類的功能就是依次遍歷它所包含的聚合中的元素並列印到控制台上。每個聚合中的元素存放的方式是不同的,有的用的是陣列,有的可能是vector或者list等,因此我為每個聚合定義了乙個迭代器,管理類只需要依次獲取各聚合的迭代器,使用迭代器去遍歷其中的元素,而不需要去理會聚合中元素的存放方式。

類圖:

**:

#include "stdafx.h"

#include #include using namespace std;

#define count 5

/// /// 遍歷迭代器抽象類

///

class iter

;class menu

;class aiter : public iter

;class biter : public iter

;class b : public menu

} iter* b::createiter()

private:

int m_idata[count];

};class mgr

void mgr::printaggr(iter* piter) }

private:

a m_aggra;

b m_aggrb;

};int main()

設計模式 迭代器模式

迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...

設計模式 迭代器模式

iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...

設計模式 迭代器模式

迭代器模式在我們日常程式設計中使用非常頻繁,像list map 陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。在迭代器模式結構圖中包含如下幾個角色 它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。...