`

设计模式(12)- 命令模式

阅读更多

命令模式

1.定义

       将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数话,对请求排队或者记录请求日志,以及支持可撤销的操作。

2.示例代码

       使用命令模式模拟开机,机箱尚的按钮相当于命令对象,主板相当于接收者,机箱相当于Invoker要求按钮命令对象执行开机请求。

  

/*主板接口*/
public interface MainBoard{
    //主板具有开机功能
    public void open();
}

/*技嘉主板,开机命令真正实现者*/
public class GAMainBoard implements MainBoard{
    //真正开机命令实现
    System.out.println("技嘉主板现在正在开机,请稍后");
    System.out.println("接通电源...");
    System.out.println("检查设备...");
    System.out.println("装载系统...");
    System.out.println("机器正常运转起来...");
    System.out.println("机器已经正常打开,请操作");
}

   

/*命令接口*/
public interface Command{
   public void execute();
}

/*开机命令实现*/
public class OpenCommand implements Command{
   //持有真正命令接收者,主板对象
   private  MainBoard mainBoard = null;
   public OpenCommand(MainBoard mainBoard){
       this.mainBoard = mainBoard;
   }
   //对于命令对象,转调主板对象的开机操作
   public void execute(){
       this.mainBoard.open();
   }
}

/*机箱触发命令对象发起开机请求*/
public class Box{
   //开机命令对象
   private  Command openCommand;
   public void setOpenCommand(Command openCommand){
       this.openCommand = openCommand;
   }
   /*提供用户使用,接收并响应用户请求,相当于按钮被按下,触发方法*/
   public void  openButtonPressed(){
       openCommand.execute();
   }
}

   

/*客户开机操作*/
public class Client{
    public static void main(String args[]){
       //1.装配开机对象
       MainBoard mainBoard = new GAMainBoard();
       Command openCommand = new OpenCommand(mainBoard);
       //2.为机箱上的按钮设置相应的命令
       Box box = new Box();
       box.setOpenCommand(openCommand);
       //3.按下开机按钮
       box.openButtonPressed();
    } 
}

 

3.实际应用

       命令模式的关键之处就是把请求封装成对象,也就是命令对象,并定义了统一的执行操作接口,这个命令对象可以被存储,转发,记录,处理,撤销等,整个命令模式都是围绕这个命令对象在进行。

命令模式的本质:封装请求
分享到:
评论

相关推荐

    设计模式6---命令模式,精美PPT

    该PPT用于公司内部分享设计模式6---命令模式之用,言简意赅,形象生动.故此分享,希望大家一起学习

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 命令模式(Command):将请求封装为一个对象,以便使用不同的请求、队列请求、或者支持可撤销的操作。 - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理这种语言中的句子...

    设计模式----命令模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象和执行命令的...

    设计模式--命令模式java例子

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java编程中,命令模式的应用广泛且实用。 命令模式的核心是将...

    JAVA-设计模式-行为型模式-命令模式

    JAVA-设计模式-行为型模式-命令模式

    设计模式讲解-命令

    "命令模式"是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求、或者支持可撤销的操作。在这个"设计模式讲解-命令"中,我们将深入探讨命令模式的概念、实现方式以及在多线程环境中的...

    设计模式--命令模式 (模仿遥控器)

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本例中,我们将通过模仿遥控器来理解命令模式的应用。 遥控器...

    设计模式课件大全

    设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式13-迭代器模式 设计模式14-中介者模式、备忘录模式 设计模式15-观察者模式、状态模式 设计模式16-策略模式、模板方法、访问者 此PPT实例便于...

    设计模式-命令模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在iOS开发中,命令模式尤其适用于处理事件驱动的编程场景,因为...

    java设计模式---诙谐易懂版

    根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    - 命令模式(Command):将一个请求封装为一个对象,以便使用不同的请求、队列请求、或者支持可撤销的操作。 - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理这种语言中的...

    c++设计模式-行为型模式-命令模式

    c++设计模式-行为型模式-命令模式;qt工程 ;c++简单源码; 命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它提供了一种解决常见问题的方法论。GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的...

    Java设计模式----通俗易懂版

    这个资源"Java设计模式----通俗易懂版"显然是一个专门针对初学者或需要深入理解设计模式的开发者编写的指南。作者以形象生动的例子解释了23种经典的Java设计模式,使得复杂的概念变得更加易于理解。 首先,我们要...

    设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版

    《设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版》是一份深入探讨软件工程中经典设计模式的重要资料,涵盖了面向对象编程中的核心设计原则和实践。这份资源主要关注GoF(Gang of Four,即《设计模式:可...

    新版设计模式手册 - C#设计模式(第二版)

    《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...

    软件设计模式--填空题+简答题(复习7).rar

    2. **设计模式分类**:设计模式通常分为三类:创建型模式(如工厂方法、抽象工厂、单例、建造者、原型)、结构型模式(如适配器、桥接、装饰、组合、代理、外观、享元)和行为型模式(如责任链、命令、解释器、迭代...

Global site tag (gtag.js) - Google Analytics