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

二手书网站建设策划书开发者模式伤手机吗

二手书网站建设策划书,开发者模式伤手机吗,视频剪辑制作,查询网站是否过期模式定义 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为独立对象,使请求的发送者与接收者解耦。通过将操作抽象为命令对象,支持命令的存储、传递、撤销和重做,增强系统的灵活性和可扩展性…

模式定义

命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为独立对象,使请求的发送者与接收者解耦。通过将操作抽象为命令对象,支持命令的存储、传递、撤销和重做,增强系统的灵活性和可扩展性。


模式结构

抽象命令类(Command)

  • 定义执行命令的统一接口(如execute()方法),声明撤销/重做等扩展功能。
    具体命令类(ConcreteCommand)
  • 实现抽象命令接口,关联接收者对象并调用其具体方法(如启动、暂停数控机床)。
    接收者(Receiver)
  • 实际执行操作的对象(如数控机床),包含具体的业务逻辑。
    调用者(Invoker)
  • 持有命令对象并触发其执行(如数控系统控制面板)。
    客户端(Client)
  • 创建命令对象并配置其接收者。

适用场景

操作队列化:如数控系统需要支持批量执行加工指令。
撤销/重做功能:支持机床操作的历史记录回滚。
分布式通信:将远程控制指令封装为可传输对象。


C++示例(数控系统场景)

场景说明:
数控机床通过控制面板发送命令(启动、暂停、急停),命令被封装为对象,支持操作记录和撤销。

#include 
#include 
#include // 接收者:数控机床
class CNC_Machine {
public:void start() { std::cout << "数控机床启动,开始加工..." << std::endl; }void pause() { std::cout << "数控机床暂停..." << std::endl; }void emergencyStop() { std::cout << "紧急停止!机床复位中..." << std::endl; }
};// 抽象命令类
class Command {
public:virtual ~Command() = default;virtual void execute() = 0;virtual void undo() = 0;  // 支持撤销操作[4][7]
};// 具体命令:启动命令
class StartCommand : public Command {
private:CNC_Machine& receiver_;
public:explicit StartCommand(CNC_Machine& machine) : receiver_(machine) {}void execute() override { receiver_.start(); }void undo() override { std::cout << "撤销启动:停止加工" << std::endl; }
};// 具体命令:急停命令
class EmergencyStopCommand : public Command {
private:CNC_Machine& receiver_;
public:explicit EmergencyStopCommand(CNC_Machine& machine) : receiver_(machine) {}void execute() override { receiver_.emergencyStop(); }void undo() override { std::cout << "撤销急停:恢复运行状态" << std::endl; }
};// 调用者:控制面板
class ControlPanel {
private:std::stack> history_;
public:void executeCommand(std::unique_ptr cmd) {cmd->execute();history_.push(std::move(cmd));  // 记录操作历史[4][7]}void undoLastCommand() {if (!history_.empty()) {history_.top()->undo();history_.pop();}}
};// 客户端使用
int main() {CNC_Machine machine;ControlPanel panel;// 发送启动命令panel.executeCommand(std::make_unique(machine));// 发送急停命令panel.executeCommand(std::make_unique(machine));// 撤销上一次操作panel.undoLastCommand();  // 输出:撤销急停:恢复运行状态return 0;
}

代码解析
接收者:CNC_Machine类实现机床的实际操作(如启动、急停)。
具体命令:StartCommandEmergencyStopCommand封装操作,关联接收者对象。
调用者:ControlPanel管理命令执行历史,支持撤销操作。
解耦优势:新增命令(如暂停命令)只需扩展Command子类,无需修改调用者代码。

http://www.dtcms.com/wzjs/579565.html

相关文章:

  • 网站的建设费用分为网站开发的前端技术有哪些
  • 沙井网站优化wordpress设置静态内容缓存时间
  • 免费的行情软件网站不下载怎么快速建网站教程
  • 网站制作价目表公司网站文化活动备案
  • 旅游网站哪家好又便宜网站seo策划方案
  • 公司网站建设技术wordpress缓存文件
  • 门户网站建设背景南宁logo设计公司
  • wordpress主题 外贸网站模板下载湖南建设厅官方网站
  • wordpress网站嵌入音乐设计网页
  • 绥化北京网站建设宁波网站建设联系荣胜
  • 网店美工的意义与发展南城网站优化公司
  • 网站后台编程语言设计作品网站
  • 郴州网站建设网站丹阳企业网站建设
  • 新网站怎么做流畅精品网站建设
  • 网站正在建设中中文百度网盟推广怎样关闭
  • 公司两个网站可以做友情链接吗wordpress建立博客
  • 怎样做销售产品网站建设学校网站方案
  • 别人做网站要把什么要过来宝山网站建设制作
  • 新上线网站如何做搜索引擎门户营销型网站搭建
  • 网站设计与wap网站开发技术高端品牌优势
  • 网站制作 成都做旅游网站的要求
  • 网站建设需要懂什么中山建网站价格
  • 潍坊电商网站建设网站建设中怎么添加源码
  • 做网站杭州傲视信息公司网站代码模板
  • 移动端网站怎么做外链手机营销型网站制作
  • 中国建设银行汕头支行网站工程建筑模板生产厂家
  • 做网站要什么有没有免费的分销软件
  • 公司网站域名更改怎么做医院网站建设论证报告
  • 怎样用dede搭建网站wordpress简约清新主题
  • 做网站的公司 北京凡科网建网站付费链接怎么做