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

电商网站服务排名微网站用什么做

电商网站服务排名,微网站用什么做,黑色风格网站主页面,wampserver做的网站简介 命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以被参数化、队列化或记录化。这种模式允许请求的发送者和接收者进行解耦,同时提供更高的灵活性和可扩展性。 描述 命令模式的核心思想是通过命令对象来封装…

简介

命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以被参数化、队列化或记录化。这种模式允许请求的发送者和接收者进行解耦,同时提供更高的灵活性和可扩展性。

描述

命令模式的核心思想是通过命令对象来封装请求。命令对象包含了执行请求的接收者和相应的动作。客户端通过将命令对象传递给调用者来触发请求的执行。

原理

命令模式包含以下几个关键角色:

  • Command(命令):定义了命令的接口,声明了执行命令的方法。
  • ConcreteCommand(具体命令):实现了Command接口,持有接收者对象,并实现具体的命令操作。
  • Receiver(接收者):负责执行具体命令的对象。
  • Invoker(调用者):有命令对象,调用命令来执行请求。

类图

在这里插入图片描述

其中,Invoker是调用者角色,要求该命令执行这个请求;
Command是命令角色,需要执行的所有命令都在这里声明,可以是接口或抽象类;
Receiver是接收者角色,知道如何实施与执行一个请求相关的操作,任何类都可能作为一个接收者;
ConcreteCommand将一个接收者对象绑定与一个动作,调用接收者相应的操作,以实现Execute。

示例

假设有一个遥控器类 RemoteControl,可以通过按下不同的按钮来执行不同的操作,比如打开电视、关闭电视、调高音量等。我们可以使用命令模式来实现该遥控器:

#include <iostream>// Command(命令)
class Command {
public:virtual void execute() = 0;
};// Receiver(接收者)
class TV {
public:void turnOn() {std::cout << "电视已打开" << std::endl;}void turnOff() {std::cout << "电视已关闭" << std::endl;}void adjustVolume(int volume) {std::cout << "音量已调整为:" << volume << std::endl;}
};// ConcreteCommand(具体命令)
class TurnOnCommand : public Command {
private:TV* tv;
public:TurnOnCommand(TV* tv) : tv(tv) {}void execute() {tv->turnOn();}
};class TurnOffCommand : public Command {
private:TV* tv;
public:TurnOffCommand(TV* tv) : tv(tv) {}void execute() {tv->turnOff();}
};class AdjustVolumeCommand : public Command {
private:TV* tv;int volume;
public:AdjustVolumeCommand(TV* tv, int volume) : tv(tv), volume(volume) {}void execute() {tv->adjustVolume(volume);}
};// Invoker(调用者)
class RemoteControl {
private:Command* command;
public:void setCommand(Command* command) {this->command = command;}void pressButton() {command->execute();}
};int main() {// 创建遥控器和电视对象RemoteControl remoteControl;TV tv;// 创建具体命令对象Command* turnOnCommand = new TurnOnCommand(&tv);Command* turnOffCommand = new TurnOffCommand(&tv);Command* adjustVolumeCommand new AdjustVolumeCommand(&tv 10);// 设置具体命令到遥控器remoteControl.setCommand(turnOnCommand);remoteControl.pressButton(); // 打开电视remoteControl.setCommand(adjustVolumeCommand);remoteControl.pressButton(); // 调高音量remoteControl.setCommand(turnOffCommand);remoteControl.pressButton(); // 关闭电视// 释放资源delete turnOnCommand;delete turnOffCommand;delete adjustVolumeCommand;return 0;
}

输出结果

电视已打开
量已调整为:10
电视已关闭

解释

在上面的示例中,遥控器类 RemoteControl 充当调用者角色,持有命令对象并调用命令的 execute() 方法。具体命令类 TurnOnCommand、TurnOffCommand 和 AdjustVolumeCommand 分别对应打开电视、关闭电视和调整音量这三个具体的命令操作。它们实现了 Command 接口,并在执行 execute() 方法时调用接收者 TV 的相应方法。

结论

命令模式将请求和执行分离开来,提供了一种松耦合的方式,使得请求发送者和接收者可以方便地扩展和变化。同时,命令模式也可以对请求进行队列化、记录化等操作,增加系统的灵活性和可扩展性。

应用场景

  • 需要将具体命令与调用者解耦,使得两者间不直接依赖的情况。
  • 需要对请求进行排队、记录操作历史等场景。
  • 需要支持撤销、重做等功能时。

上述示例实现了一个遥控器控制电视的功能,可以对电视执行打开、关闭和调整音量等操作。通过命令模式,遥控器和具体命令之间实现了解耦,可以很方便地扩展新的命令或修改命令的实现方式。

http://www.15wanjia.com/news/178623.html

相关文章:

  • 企业网站建设与管理简述电脑做服务器发布网站吗
  • 浙江省建设监理协会官方网站电子商务系统的构成
  • 南宁seo规则seo网站内容更新
  • 国家工信部网站备案WordPress页面添加最新文章
  • .net core 网站开发就业合同模板
  • 公司门户网站建设费计入什么科目网上购物平台大全
  • 企业网站html个人网站建设规划表
  • 外国网站在内地做seo百度广告多少钱
  • 高质量营销型网站定做价格个人网站模板之家
  • 品牌网站建设策做一套网页设计多少钱
  • 网站开发流程介绍网页设计就业方向
  • 有哪些做网站的公司好怎样咨询网络服务商
  • 讲究 网站广州市民政局网站建设
  • 学做软件的网站有哪些自己做社交网站吗
  • 天长街道两学一做网站网站设置右击不了如何查看源代码
  • 诚信网站 互联网建站个人电脑做网站服务器网站
  • 网站关键词中间用厦门市建设工程安全管理协会网站
  • 做网页兼职网站oss怎么做网站
  • 深圳外贸建网站深圳网络安全公司
  • 专业做网站企业西樵乐从网站建设
  • 晋江做网站的公司wordpress 修改权限
  • 电竞网站开发需求报告找网站公司做网站的陷阱
  • 网站建设合同 果动.l月饼营销软文
  • 合肥网站备案wordpress 主机主题
  • 网站开发网页软件开发 上海
  • 手机网站制作代理商做3dh春丽网站叫什么
  • 这么注册免费网站saas平台
  • 数据服务网站策划方案wordpress 顶部大图
  • 东莞网站建设 硅橡胶广州建设工程交易中心南沙交易部
  • 监控公司建设网站推广经营范围做应用级网站用什么语言好