宏命令是一组命令的集合,通过执行宏命令的方式,可以一次执行一批命令。
1、逐步创建一个宏命令
var closeDoorCommand = {
execute: function () {
console.log('关门')
}
}
var oepnPcCommand = {
execute: function () {
console.log('开电脑')
}
}
var openQQCommand = {
execute: function() {
console.log('登录QQ')
}
}
2、定义宏命令,add方法将宏命令添加进队列,execute方法为依次执行宏命令
var MacroCommand = function() {
return {
commandsList: [],
add: function(command) {
this.commandsList.push(command)
},
execute: function() {
for (var i = 0, command; command = this.commandsList[i++];) {
command.execute()
}
}
}
}
var macroCommand = MacroCommand()
macroCommand.add( closeDoorCommand )
macroCommand.add( oepnPcCommand )
macroCommand.add( openQQCommand )
macroCommand.execute()
结果展示:
宏命令是命令模式和组合模式的联合产物。