# 设计模式:命令模式
# 什么是命令模式
命令模式有三个角色:调用者,接受者,执行者
将一个请求封装为一个命令对象。调用者
不需要知道 执行者
是谁,因为有 接受者
会帮你挑选好 执行者
。
# 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)
# 总结
命令模式分离了调用者和执行者之间的耦合关系,并且还可以通过命令模式实现一些更为复杂的功能,比如:命令撤销,命令队列,宏命令等,以后有机会详谈。
← 设计模式:发布订阅模式 设计模式:组合模式 →