美文网首页
chapter06_封装调用——命令模式

chapter06_封装调用——命令模式

作者: 米都都 | 来源:发表于2019-01-07 18:52 被阅读0次
  • (1) 命令模式可以将方法调用封装起来

    (2) 命令模式将动作的请求者动作的执行者对象中解耦

  • 所有的命令对象实现相同的命令接口, 用来执行和撤销命令

      public interface Command {
    
          void execute();
    
          void undo();
      }
    
  • 具体的命令实现类在构造函数中传入动作的接收者

      public class LightOnCommand implements Command {
    
          private final Light light;
    
          public LightOnCommand(Light light) {
      
              this.light = light;
          }
    
          public void execute() {
              light.on();
          }
    
          public void undo() {
              light.off();
          }
      }
    

    在LightOnCommand命令对象中, 动作的接收者是Light

    Light.java

      public class Light {
    
          ...
    
          public void on() {
      
              System.out.println("Light is on");
          }
    
          public void off() {
      
              System.out.println("Light is off");
          }
    
          ...
      }
    

    在动作的请求者对象中, 只需传入命令对象, 无需传入动作的接收者对象, 这样就实现了动作的请求者和动作的接收者的解耦

    RemoteControl.java

      public class RemoteControl {
    
          private Command onCommand;
          private Command offCommand;
    
          public RemoteControl() {
    
              onCommands = new NoCommand();
              offCommands = new NoCommand();
          }
    
          public void setCommand(Command onCommand, Command offCommand) {
    
              this.onCommand = onCommand;
              this.offCommand = offCommand;
          }
    
          public void onButtonWasPushed() {
    
              onCommand.execute();
          }
    
          public void offButtonWasPushed() {
    
              offCommand.execute();
          }
    
          ...
      }
    
  • 命令模式

    将命令封装成对象, 以便使用不同的请求、队列或日志来参数化其他对象

  • 利用命令模式实现撤销操作

    请求调用者内部封装一条undoCommand命令, 每次调用命令时更新

  • 命令模式的实际用途

    (1) 线程池和Callable

    (2) 日志系统

相关文章

  • chapter06_封装调用——命令模式

    (1) 命令模式可以将方法调用封装起来(2) 命令模式将动作的请求者 从 动作的执行者对象中解耦 所有的命令对象实...

  • 8.命令模式 命令模式即Command模式,此模式通过被称为Command的类封装了对目标对象的调用行为以及调用参...

  • 设计模式--命令模式

    命令模式:把方法调用封装。 命令模式将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其它对象,命令模...

  • 命令模式

    最近学习Hystrix,它使用了命令模式来实现对服务调用操作的封装。正好借此机会记录一下命令模式。 简介 命令模式...

  • 命令模式

    命令模式把封装带到一个全新的境界:把方法调用封装起来。通过封装方法调用,我们可以把运算块包装成形。所以调用此算法的...

  • 6、命令模式-封装调用

  • 编程模式·命令模式

    将函数调用封装成命令对象,从而支持各种后续管理:传递,保存,延后处理,撤销重做等 经典命令模式解析 命令模式的5个...

  • 设计模式(七)命令模式-封装调用

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

  • 命令模式

    介绍 命令模式(Command Pattern)是行为型模式之一 将一系列的方法调用封装,用户只需要调用一个方法执...

  • S8.命令模式

    命令模式 命令模式是一种行为模式,用于将请求或频繁调用关系管理起来,封装成对象行为。 意义 在平常的设计中,对于不...

网友评论

      本文标题:chapter06_封装调用——命令模式

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