# 设计模式:命令模式

# 什么是命令模式

命令模式有三个角色:调用者,接受者,执行者

将一个请求封装为一个命令对象。调用者 不需要知道 执行者 是谁,因为有 接受者 会帮你挑选好 执行者

# Coding

  <button id="btn1">Btn</button>
let btn1 = document.getElementById('btn1');
// btn1 调用者

// 接受者
let setCommand = function(eml, command) {
  eml.onclick = function() {
    // 接受者:调用命令
    command.execute();
  }
}
// 执行者
let DoSomeCommand = function (receiver) {
  this.receiver = receiver;
}

DoSomeCommand.prototype.execute = function() {
  this.receiver.something()
}

let receiverObj = {
  something: function() {
    console.log('做了一些操作...');
  }
}
// 执行者:生产执行对象
let doSome = new DoSomeCommand(receiverObj);

// 接受者: 接收命令
setCommand(btn1, doSome)

# 总结

命令模式分离了调用者和执行者之间的耦合关系,并且还可以通过命令模式实现一些更为复杂的功能,比如:命令撤销,命令队列,宏命令等,以后有机会详谈。

上次更新: 9/9/2020, 10:23:18 PM