命令模式可以解耦请求对象和接收对象,两者互不了解,只保持同一接口。命令模式是将逻辑代码进行封装为
command
对象。
作用
-
command
对象拥有更长的生命周期。 -
command
支持撤销、缓存、排队等。 - 已经执行过的命令可以被保存,进行重现。
- 多个小命令可以组合成一个宏命令(组合模式)
var MenuBar = {
refresh: function(){
console.log( '刷新菜单界面' );
}
}
var commandStack = []; //可以用来保存命令,实现“重播”
var RefreshMenuBarCommand = function(receiver){
return {
undo: function(){
//实现撤销
}
execute: function(){
receiver.refresh();
}
}
};
var setCommand = function( button, command ){
button.onclick = function(){
command.execute();
}
}
var refreshMenuBarCommand = RefreshMenuBarCommand( MenuBar );
setCommand(button1, refreshMenuBarCommand);
网友评论