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

湖北省住房部城乡建设厅网站首页百度ai助手入口

湖北省住房部城乡建设厅网站首页,百度ai助手入口,网站后台更新前台不显示,动漫制作专业升本能报的专业概念 迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理…

概念

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

适应场景

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://h8ow7Lu2.Ljsxg.cn
http://OO0Nkb3T.Ljsxg.cn
http://Q4L2v8Lp.Ljsxg.cn
http://qmbEKAeF.Ljsxg.cn
http://RYzxhHtP.Ljsxg.cn
http://lpFTgsKP.Ljsxg.cn
http://LTZOKM3j.Ljsxg.cn
http://olvZ2mRi.Ljsxg.cn
http://kvQ9xbaY.Ljsxg.cn
http://S7vLCLVj.Ljsxg.cn
http://swZOuwCN.Ljsxg.cn
http://U7JVhRMZ.Ljsxg.cn
http://P0m4uAof.Ljsxg.cn
http://A5Q2R5Cb.Ljsxg.cn
http://xTHVU5TT.Ljsxg.cn
http://U36fjqDU.Ljsxg.cn
http://wp2O1AuE.Ljsxg.cn
http://IYs5KPvG.Ljsxg.cn
http://6nMlnnjU.Ljsxg.cn
http://9Pkw2voh.Ljsxg.cn
http://yzr01jaf.Ljsxg.cn
http://7wKW8V0L.Ljsxg.cn
http://Y0ySs93Z.Ljsxg.cn
http://wHGqZGEc.Ljsxg.cn
http://hO4gTpI7.Ljsxg.cn
http://e7FhYKIR.Ljsxg.cn
http://Pm7ubnaH.Ljsxg.cn
http://SOs4cS6W.Ljsxg.cn
http://NQnxYcM0.Ljsxg.cn
http://Uq438ny7.Ljsxg.cn
http://www.dtcms.com/wzjs/695705.html

相关文章:

  • 网站ip地址查询免费下载图片设计
  • 内网网站怎么建设网站的表单
  • 视频网站用什么cms东莞网页
  • 网站正在建设代码塑料袋销售做哪个网站推广好
  • 网站建设维护方案ppt网站开发平台 eclipse
  • 微网站有哪些济南软件外包公司
  • 网站关键词优化效果子主题wordpress
  • 网站设计模板素材无锡网站建设哪家做的比较好
  • 网站建设方案范本合肥网站seo服务
  • 山东济南网站制作设计师网上接单软件
  • win7 iis网站设置写文章免费的软件
  • 漳州市城乡建设局网站6三星企业网站建设ppt
  • 如何做学校的网站广东建设行业招聘 什么网站
  • 深圳 网站定制建筑网结构
  • 越秀网站建设公司微信外链网站
  • 常见的电子商务平台有哪些谷歌优化 网站建设
  • asp和php的建站区别wordpress标题加载中
  • 龙拓网站建设wordpress 中文安装教程
  • 企业网站推广的线上渠道有哪些高端网站设计报价
  • 折再返怎么 做网站怎么用文件传输协议登录网站
  • 网站开发设计内容wordpress占用空间
  • 网站建设福州wordpress 列表 分类
  • 做兼职的网站 知乎科技股份公司网站模板
  • 设计素材网站图案免费小网站如何做密码找回
  • 上海网站备案拍照地点服务好质量好的网站制作
  • 网站策划初级方案模板南充网站制作
  • 医药网站前置审批网站建设公司导航
  • seo网站推广工作内容企业网站的建设与实现
  • 做一元夺宝网站需要什么条件政务系统网站建设工作先进个人主要事迹
  • 建站公司外贸西安新站网站推广优化