js设计模式之命令模式

一、简单介绍

命令模式中的命令指的是一个执行某些特定事情的指令。,即将如果你需要做一件事,你就给一个命令对象发送一个指令,由这个对象负责下发你的指令。你不需要了解你的请求由谁完成,也不知道被请求的具体操作。所以命令模式是一种松耦合的方式。

二、使用场景

命令模式最常见的使用场景,是我们平时发送请求。每一次请求都是一次命令。 在之前介绍代理模式的时候,我们用了一个防抖的处理,优化了频繁发送请求的场景。但是有另外一些场景,频繁触发,但是每一次请求都不能忽略,并且每次请求的结果是前后依赖的。,前的防抖就不适用了。这时,我们需要一个任务队列,在上一个任务执行完成之后,才执行下一个任务。

这和浏览器的事件循环很像,但还是有略微的差别。。

在另外一些场景中,我们执行一次命令,后续的操作是经常变化的。那么我们就可以通过命令模式去方便的修改每次命令需要执行的操作。

三、示例

以下是个简单的示例。我们构建一个命令对象,外界只需要调用这个对象,执行一次命令。具体执行什么命令,则在这个命令对象中注册。实例化command对象之后,也可以修改或者新增对应的方法。还可以给command对象添加一个实例属性,对应执行的命令。每一种命令对应一个command对象。

class Command {
  constructor() {
    this.eventList = [];
  }
  doAction() {
    this.doEvent();
  }
  doEvent() {
    this.eventList
      .map(item => {
        return new Promise(res => {
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值