美文网首页
第23章 烤羊肉串引来的思考--命令模式

第23章 烤羊肉串引来的思考--命令模式

作者: 落墨Zero | 来源:发表于2018-08-15 15:45 被阅读0次

命令模式

命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。[DP]

命令模式结构图
图片.png
代码如下

Command类,用来声明执行操作的接口

public abstract class Command {

    protected Receiver receiver;

    public Command(Receiver receiver){
        this.receiver = receiver;
    }

    public abstract void execute();

}

ConcreteCommand类,将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现execute

public class ConcreteCommand extends Command {
    public ConcreteCommand(Receiver receiver) {
        super(receiver);
    }

    @Override
    public void execute() {
        receiver.action();
    }
}

Invoker类,要求该命令执行这个请求

public class Invoker {

    private Command command;

    public void setCommand(Command command){
        this.command = command;
    }

    public void executeCommand(){
        command.execute();
    }

}

Receiver类,知道如何实施与执行一个与请求相关的操作,任何类都可能成为一个接收者

public class Receiver {

    public void action(){
        print("执行请求");
    }

}

测试代码

public class Test {

    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
        invoker.executeCommand();
    }

}

命令模式作用

第一,它能较容易地设计一个命令队列;
第二,在需要的情况下,可以较容易地将命令记入日志;
第三,允许接收请求的一方决定是否要否决请求;
第四,可以容易地实现对请求的撤销和重做;
第五,由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易;
第六,命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分割开。

相关文章

  • 第23章 烤羊肉串引来的思考--命令模式

    命令模式 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队...

  • 吵架引来的思考

    半小时前,和老公吵一架 置气到现在,其实也没有什么对与错,我是一个性情中人,生气就会大声争吵,而他不喜欢争吵,他觉...

  • 停水引来的思考

    我今天想说的就是有备无患,任何事提前做好准备,还是非常好的! 好长时间没有停水了,昨天突然间停水了,没有任何通知,...

  • vim 操作 && Mac 配置本地Apache

    一、vim 的基本命令操作 vim 的模式: 编辑模式 ,命令模式 编辑模式: 命令模式:可以通过命令 最重要的命...

  • 12.vim的使用技巧

    命令模式 、命令行模式、编辑模式: INSERT 首次进入文件: 命令模式输入: 表示 命令行模式出现...

  • 五、Linux vim编辑器

    vim编辑器三种模式:命令模式、编辑模式、末行模式 1.命令模式: vim进入文件后就是命令模式 1.1 命令模式...

  • Command模式

    命令模式(Command) 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Tran...

  • JavaScript设计模式七(命令模式)

    JavaScript设计模式七(命令模式) 定义: 命令模式是最简单和优雅的模式之一,命令模式中的命令指的是一个执...

  • 第5章 -行为型模式-命令模式

    一、命令模式的简介 二、命令模式的优缺点 三、命令模式的实例

  • 设计模式详解——命令模式

    本篇文章介绍一种设计模式——命令模式。本篇文章内容参考《JAVA与模式》之命令模式。 一、命令模式的概念 命令模式...

网友评论

      本文标题:第23章 烤羊肉串引来的思考--命令模式

      本文链接:https://www.haomeiwen.com/subject/emcwbftx.html