迭代器模式:提供一種方法可以順序訪問乙個聚合物件中各個元素,而又不需要暴露給該物件的內部表示。
場景:1.乙個聚合物件,如陣列、list,應該提供一種方法來讓別人可以訪問他的元素,而又不需要暴露他的內部結構;
2.支援對聚合物件的多種遍歷;
3.為遍歷不同的聚合物件結構提供乙個統一的介面。
迭代器模式主要實現了儲存物件和讀取遍歷物件的分離。
#include #include #include struct book ;
class itemiterator ;
class library;
class bookiterator :public itemiterator
virtual book* first() override
virtual book* next() override
return _books + (_pos++);
} virtual book* end() override
virtual int hassize()
private:
book* _books;
int _pos = 0;
};class library ;
class mylibrary:public library
void addbook(std::string bookname,int price)
private:
book _books[5];
int _pos = 0;
};int main()
return 0;
}
執行結果:
C 設計模式 迭代器模式
迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式結構圖 iterator迭代器抽象類 class iterator public virtual object first 0 virtual object next 0 virtual ...
C 設計模式 迭代器模式
迭代器模式 提供一種方法順序訪問乙個聚合物件中的各個元素,而又不暴露其內部的結構 每一種資料結構 包括自定義 遍歷自身內部的資料方式都是不同的。但是我們又希望和常規的遍歷方式一樣呼叫,就如for和foreach一樣遍歷。想要以相同的方式遍歷不同型別的聚合物件,首先就要有乙個相同的介面方法來統一獲取,...
設計模式 C 迭代器模式
sejimoshi.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include include include using namespace std class student long getid intgetage void setname string name void...