设计模式[8]-Iterator
设计模式 Iterator
2023-09-14 08:57:28 时间
Type: Behavioral
Iterator:提供一个方法连续访问一个聚合对象的元素,同时不暴露其底层表示
#include iostream using namespace std; #define Data int class Iterator public: virtual Data* next()=0; class ConcreteIterator: public Iterator public: ConcreteIterator(Data* data, int* size) m_pData = data; m_pSize = size; mIndex = 0; Data* next() if(m_pData != NULL mIndex *m_pSize){ return m_pData[mIndex++]; } else { return NULL; private: int mIndex; Data* m_pData; int* m_pSize; class Aggregate public: virtual Iterator* createIterator() = 0; class ConcreteAggregate: public Aggregate public: ConcreteAggregate(int size) mSize = size; mData = new Data[size]; for(int i=0;i size; i++) mData[i] = i; Iterator* createIterator() Iterator* iterator = new ConcreteIterator(this- mData, this- mSize); return iterator; private: Data* mData; int mSize; int main() Aggregate* pAggregate = new ConcreteAggregate(4); Iterator* pIterator = pAggregate- createIterator(); Data* data; int count = 0; while (data = pIterator- next()) if(count ++ 10) break; cout *data endl; system("pause"); return 0;
C#设计模式(16)——迭代器模式(Iterator Pattern) 原文:C#设计模式(16)——迭代器模式(Iterator Pattern) 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合。
相关文章
- 为什么GOF的23种设计模式里面没有MVC?
- 设计模式(5)-己所不欲,施之于人(代理模式)
- 《Android源码设计模式》--享元模式
- 《大话设计模式》--UML图
- 【设计模式】业务代表模式
- C#设计模式——迭代器模式(Iterator Pattern)
- 设计模式 --迭代器模式(Iterator)
- 【设计模式】命令模式
- Briage桥接设计模式
- 设计模式-抽象工厂模式
- 设计模式之动态代理(dynamic proxy)
- Atitit 设计模式之道 艾提拉著 sbb 目录 1. 一、设计模式的分类1 1.1. 总体来说设计模式分为三大类:1 1.2. 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建
- 实践GoF的23的设计模式:SOLID原则(下)
- 设计模式C++实现——外观模式
- C++设计模式——迭代器模式(Iterator)
- python 设计模式之组合模式Composite Pattern
- [转] .NET领域驱动设计—看DDD是如何运用设计模式颠覆传统架构
- 设计模式(Facade)状态(注意事项)
- 设计模式16:迭代模式(Iterator)
- Page Object设计模式 | 干货
- 设计模式之单例模式浅谈
- 设计模式(Python语言)----代理模式