`

设计模式之命令模式

 
阅读更多

命令模式

      将请求封装成对象,以便使用不同的请求。队列或者日志来参数化其它对象。命令模式也支持可撤销的操作。

 

特点:

  1.命令模式将发出请求的对象和执行请求的对象解耦

  2.在被解耦的两者之间是通过命令对象进行沟通的。命令对象封装了接收者和一个或一组动作。

  3.调用者通过调用命令对象的执行方法发出请求,这会使接收者的动作被调用。

  4.调用者可以接受命令当作参数,甚至在运行时动态的进行。

 

具体代码直接拿设计模式的例子(摇控器开关的例子):

接口:

    public interface Commnad {

        public void execute();

    }

实现开关的类:

   public class LightOnCommnad implements Command {

       Light light;

       

       public LightOnCommnad(Light light) {

            this.light = light;

       }

 

       public void execute() {

            light.on();

       }

       class Light {

             public Light() {};

             public void on() {

                  System.out.println("Light is on!");

             }

       }

    }

命令对象:

   public class SimpleRemoteControl {

       Command slot;

       

       public SimpleRemoteControl() {}

 

       public void setCommand(Command command) {

            this.slot = command;

       }

   

       public void buttonWasPressed() {

           slot.execute();

       }

 

简单测试:

     public class RemoteControlTest {

         public static void main(String[] args) {

             SimpleRemoteControl remote = SimpleRemoteControl();

             Light light = new Light();

             LightOnCommand lightOn = new LightOnCommand(light);

             

             remote.setCommand(lightOn);

             remote.buttonWasPressed();

         }

      }

分享到:
评论

相关推荐

    设计模式之命令模式案例代码

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本文中,我们将深入探讨命令模式的原理、结构和实际应用,并...

    深入浅出设计模式之命令模式

    ### 深入浅出设计模式之命令模式 #### 前言 设计模式作为软件工程中的重要组成部分,为开发者提供了解决常见问题的有效途径。在众多设计模式中,命令模式是一种行为型设计模式,它把请求封装成对象,以便使用不同的...

    [行为模式] head first 设计模式之命令模式(Command)

    【行为模式】Head First 设计模式之命令模式(Command) 命令模式是一种行为设计模式,它将请求封装为一个对象,从而使我们能支持可撤销的操作、参数化对象以及将请求排队等高级操作。在Head First的设计模式书中,...

    java设计模式之命令模式

    **Java设计模式之命令模式详解** 命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在Java编程中,命令模式广泛应用于解耦请求的发送者...

    设计模式之命令模式源码示例

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式广泛应用在各种场景中,以提高代码的灵活...

    设计模式之命令模式(Command)

    命令模式是一种行为设计模式,它的主要目的是将请求者与接收者解耦,使得请求的发起者无需知道哪个对象会执行这个请求,同时也让系统更容易扩展。这种模式在软件工程中广泛应用,特别是在事件驱动和分布式系统中。 ...

    Java设计模式之命令模式/Java函数式编程 笔记

    Java设计模式之命令模式/Java函数式编程 笔记

    设计模式之命令模式(Command Pattern)

    命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,尤其是在需要解耦请求发起者和接收者时,提高了...

    23钟设计模式之命令模式

    命令模式是一种行为设计模式,它的主要目的是将请求封装为一个对象,以便支持可撤销的操作、参数化不同命令以及将命令的执行与请求者解耦。在23种经典设计模式中,命令模式因其灵活性和实用性而被广泛使用。 在命令...

    设计模式之命令模式详解(内附有例子,无源码)

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于降低系统之间的耦合度,提高灵活性...

    设计模式之命令模式Java实现

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java中实现命令模式,我们可以按照以下步骤进行: 1. **定义...

    c++-设计模式之命令模式(Command Pattern)

    命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为对象,从而使您可以使用不同的请求、队列请求或日志请求,并支持可撤销操作。命令模式通常用于实现操作的解耦,使得发送者和接收者之间不直接关联...

Global site tag (gtag.js) - Google Analytics