组合模式
组合模式就是一组命令的顺序组合,然后形成“宏命令”。所谓的“宏命令”就是命令的命令,也就是命令清单。
组合模式的设计哲学就是将单独的命令通过组合串联起来,形成顺序的程序列表。
1 // 命令清单 2 var biancheng = { 3 execute: function() { 4 console.log("编程"); 5 } 6 } 7 var kandianshi = { 8 execute: function() { 9 console.log("看电视"); 10 } 11 } 12 var chifan = { 13 execute: function() { 14 console.log("吃饭"); 15 } 16 } 17 var dalanqiu = { 18 execute: function() { 19 console.log("打篮球"); 20 } 21 } 22 var pingshenhui = { 23 execute: function() { 24 console.log("开需求评审会"); 25 } 26 }; 27 // 工作 28 var gongzuo = { 29 // 组合了部分相关的清单列表 30 commands: [pingshenhui, chifan, biancheng], 31 execute: function() { 32 for (var i = 0; i < this.commands.length; i++) { 33 this.commands[i].execute() 34 } 35 } 36 }; 37 //娱乐 38 var yule = { 39 // 组合了部分相关的清单列表 40 commands: [chifan, dalanqiu, kandianshi], 41 execute: function() { 42 for (var i = 0; i < this.commands.length; i++) { 43 this.commands[i].execute() 44 } 45 } 46 }; 47 // 整合所有的组合,执行总任务 48 var allDay = { 49 // 组合了相关的组合任务 50 commands: [gongzuo, yule], 51 execute: function() { 52 for (var i = 0; i < this.commands.length; i++) { 53 this.commands[i].execute() 54 } 55 } 56 }; 57 // 执行所有相关的组合 58 allDay.execute()