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

购物网站建站系统大企业网站建设公司排名

购物网站建站系统,大企业网站建设公司排名,网页制作流程包括哪些,响应式网站建设对企业营销定义 命令模式#xff08;Command Pattern#xff09; 是一种行为型设计模式#xff0c;它将请求封装成一个对象#xff0c;从而使您可以使用不同的请求、队列、日志请求以及支持撤销操作等功能。命令模式通过将请求#xff08;命令#xff09;封装成对象#xff0c;使…定义 命令模式Command Pattern 是一种行为型设计模式它将请求封装成一个对象从而使您可以使用不同的请求、队列、日志请求以及支持撤销操作等功能。命令模式通过将请求命令封装成对象使得客户端可以将请求发送者与请求接收者解耦从而更灵活地控制操作的执行。 特性 命令对象将请求封装成一个命令对象该命令对象包含了执行的具体操作。Invoker调用者调用命令对象的 execute() 方法来执行相应的操作。Receiver接收者实际执行命令的对象。Client客户端客户端创建命令对象并设置命令的接收者。Command命令接口定义命令接口声明执行操作的抽象方法。 命令模式使得我们能够通过不同的命令对象来执行不同的操作且操作的执行由调用者控制。 场景 适用场景 请求调用者与请求接收者解耦当客户端希望通过发送请求来调用不同的操作而不希望知道具体如何执行时可以使用命令模式。需要参数化对象当需要参数化对象进行命令的请求时命令模式可以封装请求的参数。支持撤销和恢复操作命令模式非常适合实现撤销和恢复操作通过存储命令对象及其执行过程能够轻松地实现撤销功能。支持队列或日志请求命令模式可以将请求封装成对象方便将多个命令排入队列或记录日志。 应用场景 图形用户界面GUI中的按钮点击事件通过命令模式将按钮的点击事件封装为命令使得不同按钮的操作可以被独立控制。事务管理系统在事务管理中命令可以表示一系列操作通过命令模式进行回滚或恢复。多操作处理系统在系统中可能有多个操作如编辑操作使用命令模式可以统一管理操作。 类设计 命令模式通常包括以下几个角色 Command命令接口声明执行操作的抽象方法。ConcreteCommand具体命令类实现了 Command 接口封装了具体的请求与接收者之间的关系。Receiver接收者负责执行与请求相关的操作。Invoker调用者调用命令对象来执行请求。Client客户端客户端创建命令对象并设置接收者。 代码实现 我们设计一个 遥控器操作 的例子。遥控器上有多个按钮每个按钮对应一个操作如打开电视、关闭空调等。我们使用命令模式来封装每个按钮的操作并通过遥控器调用者来执行这些操作。 1. 定义命令接口Command #include iostream #include string using namespace std;// 命令接口 class Command { public:virtual void execute() 0; // 执行命令的接口virtual ~Command() {} }; Command 是命令接口声明了 execute() 方法该方法将由具体命令类来实现。 2. 定义具体命令类ConcreteCommand // 电视打开命令 class TVOnCommand : public Command { private:class TV* tv; // 接收者电视public:TVOnCommand(class TV* tv) : tv(tv) {}void execute() override {tv-turnOn(); // 执行命令打开电视} };// 电视关闭命令 class TVOffCommand : public Command { private:class TV* tv;public:TVOffCommand(class TV* tv) : tv(tv) {}void execute() override {tv-turnOff(); // 执行命令关闭电视} };// 空调开命令 class ACOnCommand : public Command { private:class AC* ac;public:ACOnCommand(class AC* ac) : ac(ac) {}void execute() override {ac-turnOn(); // 执行命令打开空调} };// 空调关命令 class ACOffCommand : public Command { private:class AC* ac;public:ACOffCommand(class AC* ac) : ac(ac) {}void execute() override {ac-turnOff(); // 执行命令关闭空调} }; 每个命令类如 TVOnCommand、TVOffCommand 等都实现了 Command 接口并封装了具体的操作逻辑。每个命令类持有一个接收者例如 TV 或 AC并在 execute() 方法中调用接收者的方法执行具体的操作。 3. 定义接收者类Receiver class TV { public:void turnOn() {cout TV is turned ON. endl;}void turnOff() {cout TV is turned OFF. endl;} };class AC { public:void turnOn() {cout AC is turned ON. endl;}void turnOff() {cout AC is turned OFF. endl;} }; TV 和 AC 类是接收者包含了执行具体操作的方法例如打开电视、关闭空调。 4. 定义调用者类Invoker class RemoteControl { private:Command* command; // 持有命令对象public:void setCommand(Command* command) {this-command command; // 设置命令对象}void pressButton() {command-execute(); // 执行命令} }; RemoteControl 类是调用者持有一个命令对象并在按下按钮时执行该命令。 5. 客户端调用 int main() {// 创建接收者对象TV* tv new TV();AC* ac new AC();// 创建命令对象Command* tvOn new TVOnCommand(tv);Command* tvOff new TVOffCommand(tv);Command* acOn new ACOnCommand(ac);Command* acOff new ACOffCommand(ac);// 创建遥控器RemoteControl* remote new RemoteControl();// 按下按钮打开电视remote-setCommand(tvOn);remote-pressButton();// 按下按钮关闭电视remote-setCommand(tvOff);remote-pressButton();// 按下按钮打开空调remote-setCommand(acOn);remote-pressButton();// 按下按钮关闭空调remote-setCommand(acOff);remote-pressButton();// 清理内存delete tv;delete ac;delete tvOn;delete tvOff;delete acOn;delete acOff;delete remote;return 0; } 6. 输出结果 TV is turned ON. TV is turned OFF. AC is turned ON. AC is turned OFF.客户端通过 RemoteControl 类来控制设备的开关每次按下按钮时遥控器都会调用相应命令对象的 execute() 方法来完成实际的操作。 命令模式的优缺点 优点 解耦发送者和接收者命令模式将请求的发送者和接收者解耦客户端不需要知道谁会处理请求只需要发送命令对象即可。支持撤销和恢复命令模式可以很容易实现撤销和恢复操作命令对象可以保存执行过程支持回滚。命令队列和日志命令可以存储在队列中或日志中方便管理和回溯。可扩展性新命令的增加不会影响现有代码只需要新增具体命令类即可。 缺点 类的数量增加每个命令都会对应一个具体的命令类可能会增加类的数量。系统结构复杂使用命令模式时系统中需要管理多个命令类、调用者和接收者可能使系统结构变得复杂。 场景 适用场景 GUI事件处理例如按钮点击、菜单选择等GUI事件的处理可以通过命令模式将每个事件封装为命令对象。任务调度系统将任务封装成命令对象通过队列或调度器执行任务。撤销/恢复功能如文本编辑器、绘图软件等需要提供撤销和重做的功能命令模式能很方便地实现该功能。宏命令多个命令可以组合成一个“宏命令”一起执行。 应用场景 文本编辑器的撤销操作用户进行文本编辑时编辑操作可以封装为命令对象撤销时可以通过命令对象来恢复到之前的状态。图形编辑器中的操作在图形编辑器中用户可以执行绘制、删除、移动等操作每个操作都可以封装为命令对象便于撤销和重做。网络请求处理网络请求可以封装为命令对象每个请求可以通过命令对象来执行便于管理请求的执行顺序和状态。 总结 命令模式通过将请求封装成命令对象使得请求的发送者与接收者解耦。它可以帮助简化系统中的操作支持撤销/恢复功能并使得系统更具扩展性。命令模式适用于事件处理、任务调度、宏命令等场景可以使系统的操作更加灵活和可管理。
http://www.hkea.cn/news/14279704/

相关文章:

  • 车网站模板预览已备案网站更换域名
  • 切管机维修 东莞网站建设吉林省建设工程造价信息网站
  • 网站建设整体解决方案响应式网站建站工具
  • 金融直播室网站建设孝昌县建设局网站
  • 无锡网站建设无锡速联科技营销型网站建设报价
  • 戴南做网站电子商务网站建设课程
  • 用psd做的买书网站仓库管理erp系统使用
  • 网站制作带优化视频链接生成网站
  • 黑色大气网站源码南山区宝安区福田区
  • 凯天建设发展集团有限公司网站设计本笔记本
  • 哈密市建设局网站2008iis7怎么搭建网站
  • 湖南平台网站建设找哪家爱字幕app制作视频软件下载
  • 医院如何做网站策划手机网站商城源码
  • 网站建设客户评价网站开发项目报价
  • 店铺网站域名怎么做wordpress php.ini路径
  • 现在最好的企业网站管理系统做一个网站建设
  • 网站文章优化怎么做青岛怎样做网站
  • 做logo的网站房屋中介网站建设方案
  • 如何做枪版电影网站云南旅游网站建设公司
  • 用来网站备案注册什么公司好莱芜在线电话
  • 汕头网站建设stqhcx企业宣传片拍摄制作
  • 投票网站建设建站系统源代码
  • 中企动力做的网站价格区间像淘宝类别网站怎么做
  • 微网站做的比较好nginx 防御 wordpress 攻击
  • 网站开发服务流程事件营销定义
  • 温州网站设计联系亿企邦重庆云诚度网站建设
  • 某公司网站源码淮安市建设监理协会网站
  • 准备网站的工作注册公司经营范围怎么选择
  • 免费企业网站建设介绍网络app推广公司
  • 太原网站建设的公司p2p网站开发公司