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

上海网站设计专业团队品牌策划与推广

上海网站设计专业团队,品牌策划与推广,网站建设项目补充协议,手机社区网站模板概念 命令模式是一种行为设计模式,它的核心思想就是将请求封装为一个对象,此对象包含与请求相关的所有信息。可以用不同的请求对客户进行参数化。命令模式通过将请求的发送者和接收者解耦,支持请求的排队、记录、撤销等操作。 使用场景 1、…

概念

命令模式是一种行为设计模式,它的核心思想就是将请求封装为一个对象,此对象包含与请求相关的所有信息。可以用不同的请求对客户进行参数化。命令模式通过将请求的发送者和接收者解耦,支持请求的排队、记录、撤销等操作。

使用场景

1、如果需要通过参数来操作对象,可以使用命令模式。

2、如果想要把操作放入到对象中进行操作执行或者远程执行操作就需要命令模式。

3、如果想要实现操作回滚操作,就需要用到命令模式。

实现方式

1、使用命令模式需要至少创建三个类,一个命令的接口类,一个是命令的调用类,一个实际接受者对象(简单命令可以没有);

2、创建一个仅有一个执行方法的命令接口。通过继承命令接口创建一系列不同的具体命令类,具体命令类中实现方法。每个具体的命令类必须保存请求参数和实际接受者对象的引用。所有的变量只能在构造函数中进行初始化。

3、创建命令的调用类,也是发送命令的类,在这些类中添加保存命令的成员变量,发生者只能通过命令接口与其命令进行交互,发送者本身不创建对象,命名对象是通过参数设置到调用类的。

4、客户端的初始化。
​ 1)创建接受者
​ 2)创建命令,有需要的话可以关联接受者对象。
​ 3)创建发送者,需要将命令进行关联(也就是将命令设置到发送者)。

类结构图

在这里插入图片描述

示例代码

#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://www.dtcms.com/wzjs/482799.html

相关文章:

  • 广西华宇建设集团网站重庆网站关键词排名
  • 怎么使用网站模板360收录提交
  • 自己做团购网站怎么样网络推广主要工作内容
  • 医院网站建设解决方案seo建站优化
  • 360站长平台链接提交网站内容优化方法
  • 大型网站建设兴田德润赞扬津seo快速排名
  • 钦州做网站百度关键词推广怎么收费
  • 超大网站制作素材seo的优化方向
  • 做网站需要虚拟主机还是服务器app001推广平台官网
  • 怎样做淘宝优惠券网站青岛爱城市网app官方网站
  • 保险网站有哪些平台seo从入门到精通
  • 美国做网站价格成都百度推广电话
  • 网站的功能需求做网站多少钱
  • 编程自己做网站徐州seo排名公司
  • 贵阳网站定制电话号码大数据培训包就业靠谱吗
  • 北京网站设计实力乐云践新推广普通话手抄报内容文字
  • 网站设计建设代理机构响应式网站模板的应用
  • 个人网页设计说明500字seo排名系统
  • 如何做单页网站视频北京厦门网站优化
  • 网站制作性价比哪家好seo查询5118
  • 网站建设哪一家好seo平台优化服务
  • 做断桥铝最知名的网站怎么做一个网站
  • 广州定制网站建设宁波seo外包
  • 什么是网站解决方案女孩子做运营是不是压力很大
  • 网站简繁切换js网页制作软件下载
  • 直销网站建设网站排名提升软件
  • 武汉模板建站定制网站谷歌搜索引擎363
  • 网站制作流程详解(学做网站第一步)网站备案流程
  • 时时彩网站代理怎么做seo入门培训班
  • 广东深圳网站防恶意点击软件