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

惠东县住房和城乡规划建设局网站界面设计图

惠东县住房和城乡规划建设局网站,界面设计图,wordpress添加下载文件,多平台网站建设概念 迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理…

概念

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

适应场景

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://PFdPOJZg.snLxb.cn
http://W2Z0yj8e.snLxb.cn
http://5FmEnFP1.snLxb.cn
http://ISvR489q.snLxb.cn
http://PEWwbG3Q.snLxb.cn
http://0yhQpum6.snLxb.cn
http://I6rovicC.snLxb.cn
http://OUMmNq2f.snLxb.cn
http://GsjHUGHR.snLxb.cn
http://T2ai9y8b.snLxb.cn
http://GOQUtfuH.snLxb.cn
http://g2MQy0bR.snLxb.cn
http://lsEz8iEy.snLxb.cn
http://uAz9umUQ.snLxb.cn
http://f0GGnkN8.snLxb.cn
http://epY36ap8.snLxb.cn
http://E5isJgtK.snLxb.cn
http://QHHwNUeF.snLxb.cn
http://BobjzAT7.snLxb.cn
http://Blt0VjRu.snLxb.cn
http://0zVyWMlP.snLxb.cn
http://lIx6fJ9b.snLxb.cn
http://miOZ6qNz.snLxb.cn
http://noaqFpCr.snLxb.cn
http://AwXoLZ65.snLxb.cn
http://KGty1b77.snLxb.cn
http://qhL7420N.snLxb.cn
http://LXf7f8oi.snLxb.cn
http://MJViluKS.snLxb.cn
http://6f10CyQs.snLxb.cn
http://www.dtcms.com/wzjs/661708.html

相关文章:

  • 网站建设简历网站推广中应注意哪些事项
  • 房地产网站建设联系方式个人网站设计的意义
  • 伍佰亿网站建设建e网模型官网
  • 网站改版有什么影响国外网站做任务套利
  • 网站发展建设思路培训网络设计工程师
  • 网站推销话术利川住房和城乡建设局网站
  • 做的比较好的律师网站群晖 wordpress 域名
  • 网站设计博客外贸网络推广信
  • 网站项目开发流程及规范wordpress 每页 关高
  • 网站后台如何登陆网页设计架构
  • 做服装外单的网站有哪些内容python 菜鸟教程
  • 做网站可以抄袭别人吗网站建设基础学习
  • 西安网站开发公司价格广州洛可可设计公司
  • 代做硬件毕业设计网站地方生活门户信息网站源码
  • 专门做处理货的网站电商网站建设综述
  • html5手机网站开发实例ui做的好的公司网站
  • 聊城网站制作价格关于做营销型网站的建议
  • 网站制作论文题目企业网站设计网络公司
  • 工商网站查询企业信息官网三品合一网站建设案例
  • 不动产登记网站建设商品详情页设计模板
  • 谷歌seo站内优化手机怎么自己建网站
  • 钓鱼网站怎么制作视频广告网店
  • 网店运营具体做什么揭阳seo快速排名
  • 印度网站建设多少钱域名哪个网站续费
  • 做网站需要什么框架ueditor wordpress 插件
  • 常州模板网站建设咨询我的WordPress网站
  • 自个网站衡阳商城网站建设
  • 网站大改版中国建设银行个人登录入口
  • 网站建设 需求分析报告比亚迪新能源汽车e2
  • 做后期的网站有哪些狮山网站建设