定义
命令模式中的命令指的是一个执行某些特定事情的指令。有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。比如在饭店点菜,我们可以点菜但是不用关心厨师是谁怎么做。
应用场景
把if else改为字典
如果要实现撤销操作,可以将每一步操作都存储到历史堆栈中,然后依次循环执行这些命令的undo操作,直到全部完成。
var makeCommand=function(receiver,state){
return function(arguments){
receiver[state]();
}
}
var Ryu={
attack:function(){
console.log('攻击')
},
defense:function(){
console.log('防御')
},
crouch:function(){
console.log('蹲下')
}
}
var command=makeCommand(Ryu,"attack")
command()