组合模式

组合模式就是一组命令的顺序组合,然后形成“宏命令”。所谓的“宏命令”就是命令的命令,也就是命令清单。

组合模式的设计哲学就是将单独的命令通过组合串联起来,形成顺序的程序列表。

 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()

posted @ 2021-09-26 20:26  keyeking  阅读(39)  评论(0编辑  收藏  举报