首页 > 其他分享 >命令模式

命令模式

时间:2023-12-15 17:37:12浏览次数:33  
标签:void 模式 命令 command receiver Command public

命令模式,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

命令模式有三个角色,一个命令,二是命令接收者,三是命令调用者。

像http请求,数据库sql命令都是常见的命令模式。

命令模式的意图是将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。

命令模式主要解决的问题是在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。

代码示例

class Receiver
{
public void Action()
{
Console.WriteLine("执行请求!");
}
}

 

abstract class Command
{
protected Receiver receiver;
public Command(Receiver receiver)
{
this.receiver = receiver;
}
abstract public void Execute();
}

 

class ConcreteCommand : Command
{
public ConcreteCommand(Receiver receiver) : base(receiver)
{
}

public override void Execute()
{
receiver.Action();
}
}

class Invoker
{
private Command command;
public void SetCommand(Command command)
{
this.command = command;
}
public void ExecuteCommand()
{
command.Execute();
}
}

标签:void,模式,命令,command,receiver,Command,public
From: https://www.cnblogs.com/seeksimple/p/17903836.html

相关文章

  • Redis基础命令操作
    一、基础命令1.ping(心跳检查)ping//输入ping命令,看到PONG响应,说明客户端与Redis的连接正常。 2.get/set(读写键值)setnamexiaoHong//setkeyvalue会将指定key-value写入到DB。getname//getkey则会读取指定key的value值。 3.select(切换数据库)sel......
  • Linux下解压命令、压缩命令大全,详细教程
    Linux下解压命令、压缩命令大全,详细教程linux常用的解压和压缩命令如下:1、.tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)2、.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName3、.tar.gz和.tgz解压:tarzxvfFil......
  • 模板方法模式
    模板方法模式是指定义一个操作中算法的骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下即可重定义该算法的某些特定步骤。模板方法主要有两个角色,一个抽象类模板,定义好骨架,第二是实现的子类,实现抽象类模板的抽象方法,和根据需要重写一些方法,其实这也是我......
  • 策略模式
    策略模式有两个主要角色,一个是主类,一个是策略类,通过主类的构造函数将策略类注入到主类,从而实现调用不同的策略。典型的例子就是收银策略,正常收费,八折、五折,满200减50等等。示例代码packagedesignMode.strategy;publicclassCashContext{privateCashSupercashSuper;......
  • 知识|基于混合模式的多余度飞控全数字仿真系统研究
    *余度(Redundancy):一种确保安全的设计手段,使得出现两个及以上故障时,才会引起既定不希望发生的工作状态。飞行控制软件主要完成飞行传感器数据处理、飞行姿态控制和余度管理任务,对保证飞机安全性和可靠性起着关键作用,但是现实中与飞行控制软件相关的研发测试过程依旧举步维艰。其主......
  • python 脚本的启动模式(python -m以模块方式启动)
    今天再看python的项目时,发现GitHub中给出的python脚本的执行格式是python-mpipinstallsomepackage。于是开始了python模式启动之旅。其中很多相关借鉴了该博客,同时感谢博主:http://www.cnblogs.com/xueweihan/p/5118222.html什么是python启动模块:通过python启动一个库中......
  • linux下的抓包工具tcpdump命令用法
     ############linux下的抓包工具tcpdump命令详解#########tcpdump命令--详解 tcpdump是工作中必用的一道指令,如果熟悉掌握,将会很快的帮你解决问题!先看看tcpdump的具体参数及意义:-i:指定tcpdump监听的网络接口-s:指定要监听数据包的长度-c:指定要监听的数据包数量,达到指定......
  • docker-基础常见命令
    2.1.常见命令首先我们来学习Docker中的常见命令,可以参考官方文档:https://docs.docker.com/engine/reference/commandline/cli/ 2.1.1.命令介绍其中,比较常见的命令有:命令说明文档地址dockerpull拉取镜像dockerpulldockerpush推送镜像到......
  • 13.adb命令连接真机
    一、准备工作1、准备一台或多台Android设备(如小米,华为),开启USB调试2、Android设备与电脑(Mac或者Windows)在同一个局域网内3、电脑安装好ADB工具二、具体步骤1.使用数据线通过USB接口将手机与电脑连接,在终端中执行如下命令:方法一USB数据线连接:adbdevices 查看设备是否连......
  • 适配器模式揭秘:让不兼容的组件完美协同
    前言从这篇文章开始来盘一盘结构型设计模式,在开始之前先来简单回顾一下创建型的设计模式有哪些,如果有兴趣,就来一起学习吧:设计模式之简单工厂模式工厂方法模式:改变你对软件开发的认知_凡夫编程的技术博客_51CTO博客抽象工厂模式:角色解析与应用探索_凡夫编程的技术博客_51CTO博客设计......