美文网首页
设计模式(七)命令模式-封装调用

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

作者: 天色将变 | 来源:发表于2019-06-29 09:54 被阅读0次
定义

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

解决的问题

将“动作的请求者”从动作的执行者“对象中解耦。
归根结底:在做设计,写框架代码的时候,尽量解耦,不要让框架代码与具体的内容代码绑定在一起。

类图
image.png
伪代码

命令对象接口(动作的执行者)

public interface Command{
  public void execute();// 都有一个统一的执行方法
}

客户端(动作的请求者)

public class Client{
  Command obj;
  public void setCommand(Command command){// 给一个命令对象,多态,不关心具体是哪个对象
    this.obj = command;
  }
  public void executeCommand(){// 执行,调用对象的方法,执行,不关心是哪个具体对象
    obj.execute();
  }
}

具体命令对象

public class Command1 implements Command{
   public void execute(){
      xxxx;
  }
}
public class Command2 implements Command{
   public void execute(){
      yyyy;
  }
}

示例

Client client = new Client();
client.setCommand(new Command1());
client.executeCommand();

client.setCommand(new Command2());
client.executeCommand();
一句话总结

给我一个对象,我来调用对象执行其方法。

临时产生的感想

设计框架,高度解耦,自由替换,使用多态

相关文章

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

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

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

  • 设计模式系列—命令模式

    《Head First设计模式》读书笔记 命令模式(封装调用) 一,场景介绍 1,需求 设计一个家电自动化遥控器的...

  • S8.命令模式

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

  • 多此一举的调用?从 NSInvocation 看命令模式

    命令模式是一种将方法调用封装为对象的设计模式,在iOS中具体实现为NSInvocation,你可以从NSInvoc...

  • 命令模式

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

  • 设计模式--命令模式

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

  • 设计模式(十三)-命令模式

    命令模式 命令模式是一种数据驱动的设计模式,它属于行为模式,请求以命令的形式包裹在对象中,并传给调用对象,调用对象...

  • 命令模式

    在面向对象编程中,命令模式是概括所有方法信息的设计模式。命令模式封装了执行具体命令所需要的负载信息, 这样命令可以...

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

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

网友评论

      本文标题:设计模式(七)命令模式-封装调用

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