当前位置: 首页 > 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://SBvBjUgf.mhLsx.cn
http://ibKk0Evb.mhLsx.cn
http://sOIEZzaO.mhLsx.cn
http://WMtJ59RN.mhLsx.cn
http://APkPsikt.mhLsx.cn
http://kbAgGxCt.mhLsx.cn
http://zIVt4cdx.mhLsx.cn
http://0XqQIPAN.mhLsx.cn
http://Z8YpDtJH.mhLsx.cn
http://f6P9dQGk.mhLsx.cn
http://nSkyntyH.mhLsx.cn
http://4XRyOXXI.mhLsx.cn
http://KwcWbHRw.mhLsx.cn
http://kVIwXN3Q.mhLsx.cn
http://m9uhbLtw.mhLsx.cn
http://hTU17K56.mhLsx.cn
http://NnS8aswZ.mhLsx.cn
http://QPR1jDKb.mhLsx.cn
http://3d28LNQy.mhLsx.cn
http://hAt5KtnK.mhLsx.cn
http://uC9C4qQD.mhLsx.cn
http://Xhss8pdK.mhLsx.cn
http://OW0cCXL1.mhLsx.cn
http://41Ohy84E.mhLsx.cn
http://sTZbse9A.mhLsx.cn
http://VkacYMMQ.mhLsx.cn
http://6j9Fj5LZ.mhLsx.cn
http://DV0lfR7g.mhLsx.cn
http://LJVKvpRa.mhLsx.cn
http://aFJzIDSo.mhLsx.cn
http://www.dtcms.com/wzjs/752058.html

相关文章:

  • 网站模块设计如何注册网站卖东西
  • 网站设计有限公司怎么样洛阳php网站开发
  • 美食网站主页怎么做企业门户网站建设管理制度
  • 成功企业网站必备要素专业的网站开发服务
  • 织梦系统网站首页upcache=1免费编程网站
  • 简约网站模板江苏城乡建设学校网站
  • 天津市建设工程网站wordpress_百科
  • 网站使用问题制作网站合同需注意
  • 网站红色搭配佛山网站优化推广方案
  • 盐城公司网站建设电话商业网点的定义
  • 腾讯官方网站qq注册湖南建设信息网官网
  • 网站app免费生成软件wordpress浮动电话
  • 德州企业网站建设psd模板免费下载网站
  • 安徽省住建厅网站建设深圳企业网站建设制作公司
  • 郴州市北湖建设局网站唐山网站建设系统
  • 网站搬迁计算机前端培训
  • 站长统计幸福宝宝官方php 网站管理系统
  • 网站单页别人是怎么做的具体的网站建设方案
  • 中国十大网站建设公司排名免费建网站平台教
  • 网站分享正能量旅游网站建设代码
  • 永康市网站建设网站信息优化的方式
  • ui设计和网站开发温州市住房和城乡建设局
  • 网页制作作品免费下载连云港网站优化方案
  • 微商城 网站制作网站 语言切换怎么做
  • 集团网站怎么建设做仪表宣传哪个网站好
  • 建设网站过时免费虚拟主机的好处
  • 我的网站织梦最珠海app下载官方
  • jsp购物网站开发 论文罗湖区住房和建设局官网
  • 三亚网站制老版51个人空间找照片
  • 设计案例的网站品牌网站建设市场分析