当前位置: 首页 > wzjs >正文

做淘宝网站报告河北省建设工程

做淘宝网站报告,河北省建设工程,门户网站运营是什么,开奖网站怎么做概念 迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理…

概念

迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理不同类型的家具和对象。

适应场景

1、当内部集合的数据结构很复杂并且不希望外部调用知道数据结构的数据组成的时候可以使用迭代器模式。

2、当程序中有很多的重复遍历代码的时候,可以使用迭代器模式减伤代码量,保证程序的易读性。

3、当代码能够用遍历不同的甚至是无法预知的数据结构时,可以使用迭代器模式。

实现方式

1、使用迭代器模式,我们需要创建两个类,一个是迭代器接口类,一个是容器类。

2、声明迭代器接口的时候,需要注意该接口必须提供至少一个方法来获取集合中的下个元素。也可以实现其他的接口(例如:添加数据接口、获取最后一个、获取第一个和元素数目等。)。

3、声明聚合对象接口的时候,需要实现一个接口用于创建对应的迭代器的方法,其返回值必须是对应的迭代器对象。如果有需求使用其他的迭代器,可以多添加几个创建迭代器的方法。

4、创建具体的迭代器类,在创建迭代器类的时候除了实现迭代器接口中的方法之外,还需要在构造函数进行迭代器和容器的关联。

5、创建具体的容器类,除了需要实现容器类的接口之外,还需要实现容器中的具体存储方式,例如是通过数据还是链表进行数据存储。具体的集合对象在创建迭代器时候必须将自己传递给迭代器来创建迭代器和容器之间的连接。

6、到处迭代器模式基本完成,在客户端使用的时候需要先创建容器,向容器中写入数据,之后在创建迭代器,创建迭代器之后就可以通过迭代器操作容器了。

类关系图

在这里插入图片描述

示例代码

#include "MingLingMoShi.h"int main()
{std::cout << "欢迎东哥来到设计模式的世界!\n";//创建命令对象CommandBase* command = new ConcreteCommend();CommandBase* command1 = new ConcreteCommend1();//创建调用者Invoker invoker;invoker.setCommend(command);invoker.execte();invoker.setCommend(command1);invoker.execte();
}
#pragma once
#include <iostream>
using namespace std;//接受者类
class Receiver {
public:Receiver() {}~Receiver() {}void execte() {cout << "Receiver 接收者对象执行操作函数" << endl;}
};//命令基类
class CommandBase
{
public:CommandBase() {}~CommandBase() {}virtual bool execte() = 0;
};//具体命令,不使用接受者
class ConcreteCommend : public CommandBase {
public:ConcreteCommend() {}~ConcreteCommend() {}bool execte() {cout << "ConcreteCommend 没有使用接受者的命令对象" << endl;return true;}
};//具体命令,使用接受者
class ConcreteCommend1 : public CommandBase {
public:ConcreteCommend1() {}~ConcreteCommend1() {}bool execte() {cout << "ConcreteCommend1 使用接受者的命令对象" << endl;m_receiver = new Receiver();m_receiver->execte();return true;}
private:Receiver* m_receiver;
};//调用者
class Invoker {
public:Invoker() {}~Invoker() {}void setCommend(CommandBase * command) {m_command = command;}void execte() {m_command->execte();}
private:CommandBase* m_command;};

文章转载自:

http://RUecDK6S.smjyk.cn
http://LlOvtC8b.smjyk.cn
http://cefpxa7m.smjyk.cn
http://1vT97mYP.smjyk.cn
http://xZtJATrv.smjyk.cn
http://s7PNoL8z.smjyk.cn
http://zAZdtAGh.smjyk.cn
http://ePdJkFym.smjyk.cn
http://GovjWEns.smjyk.cn
http://jsRiSWCt.smjyk.cn
http://kcOpCGOZ.smjyk.cn
http://ZvKSpZju.smjyk.cn
http://JCgXYzPd.smjyk.cn
http://BOZKLPbL.smjyk.cn
http://9wt2LYZj.smjyk.cn
http://O4hxZkU4.smjyk.cn
http://eKiRZ5Rn.smjyk.cn
http://ylwyIjWZ.smjyk.cn
http://6BTRdYCS.smjyk.cn
http://mnFKc6o4.smjyk.cn
http://CWhXUbXa.smjyk.cn
http://UUOPZnzA.smjyk.cn
http://KogkSGmK.smjyk.cn
http://qMQTMe4Y.smjyk.cn
http://y9D7Q2TN.smjyk.cn
http://FdoXMV9q.smjyk.cn
http://zfKvXVtx.smjyk.cn
http://SD0dYc3c.smjyk.cn
http://1w4gqdju.smjyk.cn
http://vYdCztzW.smjyk.cn
http://www.dtcms.com/wzjs/698001.html

相关文章:

  • 个人建什么样的网站好向google提交网站
  • dede自动生成网站地图wordpress根据用户名生成头像
  • 成都网站制作套餐公司做卖网站有前景吗
  • asp购物网站客户查看购物车wordpress 手机发文章
  • 宁波网络建站模板建筑资料网站有哪些
  • 上海专业建站最低价佛山哪家公司建设网站
  • 网站建设账务处理属于什么费用千万不要学网络营销
  • 网站虚拟主机哪个好怎么让百度收录网站
  • 云南网站设计定制163网易企业邮箱格式
  • 书店建设网站申请网站建设费
  • 做网站收会员费违法吗微信网页版无法登录
  • 学做前端的网站怎样创建网站网站
  • 淄博圻谷网站建设制作济南源码网站建设
  • 网站建设费用计入管理费用的哪个科目展示类网站模板js
  • 中山企业营销型网站制作wordpress修改页面组件
  • 安徽省招标投标信息网官方网站杭州高端网站开发
  • 安次区建设局网站新余网站网站建设
  • 重庆市门户网站制作什么网站可以做兼职赚钱吗
  • 建立网站的作用制作网站要花多少钱
  • 网站背景怎么做济南建设局
  • 网站代码是什么意思dnf做心悦宠物的网站
  • 东莞网站定制开发建立网站很重要的要素是什么
  • 有关网站空间正确的说法是wordpress编辑器不能用
  • 甘肃省住房和建设厅网站服务中心wordpress站点标题添加
  • php大型网站开发视频教程菏泽网站建设熊掌号
  • 保定专业网站建设开发公司asp.net网站创建浏览器快捷图标
  • 国家建设部举报网站北京网站制作建设公司哪家好
  • 海淀手机网站设计公司创意响应式网站建设
  • 福州建设网站效果图南充网站建设
  • 邢台企业网站制作建设百度搜索引擎入口