设计模式之迭代器模式
来源:互联网 发布:俄罗斯套娃动作数据 编辑:程序博客网 时间:2024/05/24 01:00
上篇我们讲了外观模式,这篇我们再来看看迭代器模式,这也是一种使用频率很高的模式。通常的数据存储聚合类中,既包括数据存储的功能又包括对这些数据遍历的功能,而要修改聚合类,既得修改数据存储又得修改遍历功能,非常繁琐,也不符合单一职责原则。迭代器模式的核心思想是将数据存储和数据遍历分开,让数据遍历的方法单独组成一个迭代器的类,基本架构:一个抽象聚合类(包括数据存储和抽象遍历类),一个具体聚合类(包括数据存储和具体遍历类),一个抽象遍历类,一个具体遍历类。这样当我们有新的产品需求如添加一个新的具体聚合类的时候,我们只需要添加一个具体遍历类和具体的聚合类,符合开闭原则。
以下是代码示例:
#pragma once#include <List>using namespace std;typedef list<int> LISTINT; class baseIterator//抽象迭代器{public://抽象迭代器里的基本遍历方法void nextObject();void preObject();void lastObject();void firstObject();};class basePact//抽象产品类{private :LISTINT mList;public ://数据存储基本方法basePact(LISTINT);void addObject(int); void removeObject(int);LISTINT getList(); virtual baseIterator* createIterator()//抽象迭代器{return new baseIterator();}};class ProductPact: public basePact//具体产品类{public :baseIterator* createIterator(){return new realIterator();}//具体迭代器};class realIterator :public baseIterator//具体迭代器{private:ProductPact* m_product;public: };
0 0
- 设计模式之迭代器模式
- 设计模式之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之--迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之-迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式 之 迭代器模式
- 设计模式 之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- NS_OPTIONS枚举的用法
- android.mk简介及如何直接执行C代码
- SSLstrip 中间人欺骗Https转Http获取密码
- 如何用AndroidStudio导入github项目
- 四种方案解决ScrollView嵌套ListView问题
- 设计模式之迭代器模式
- 自动布局之autoresizingMask使用详解(Storyboard&Code)
- PluginWorld 好用组件大集合 for Android
- 8.3.2 Using Primary Keys 使用主键:
- 远程操作linux的利器:putty和psftp
- 字符串
- 互联网专家资源分享(四)
- vs2015 与iis express
- 九度OJ 1194:八进制 (进制转换)