• 组合模式--超级宏命令


    var MacroCommand = function(){
      return {
        commandList: [],
        add: function( command ){
        this.commandList.push(command);
        },
        execute: function(){
          for(var i = 0,command;command = this.commandList[i++];){
            command.execute();;
          }
        }
      };
    };
    
    var openAcCommand = {
      execute: function(){
        console.log('打开空调');
      }
    };
    
     
    
    /**********家里的电视和音响是连接在一起的,所以可以用一个宏命令来组合打开电视和打开音响的命令*********/
    var openTvCommand ={
      execute:function(){
        console.log('打开电视');
      }
    };
    var openSoundCommand ={
      execute:function(){
        console.log('打开音响');
      }
    };
    
    var macroCommand1 = MacroCommand();
    macroCommand1.add(openTvCommand);
    macroCommand1.add(openSoundCommand);
    
    
    /*********关门、打开电脑和打登录 QQ 的命令****************/
    var closeDoorCommand ={
      execute: function(){
        console.log('关门');
      }
    };
    var openPcCommand ={
      execute: function(){
        console.log('开电脑');
      }
    };
    var openQQCommand ={
      execute: function(){
        console.log('登录QQ');
      }
    };
    
    var macroCommand2 = MacroCommand();
    macroCommand2.add(closeDoorCommand);
    macroCommand2.add(openPcCommand);
    macroCommand2.add(openQQCommand);
    
    
    /*********现在把所有的命令组合成一个“超级命令”**********/
    var macroCommand = MacroCommand();
    macroCommand.add(openAcCommand);
    macroCommand.add(macroCommand1);
    macroCommand.add(macroCommand2);
    
    macroCommand.execute();

     摘自JavaScript设计模式与开发实践

  • 相关阅读:
    jquery Table基础操作
    window.opener
    CSS基础
    CSS样式
    CSS框架
    常用正则表达式
    HTML字体对应word字体
    SQL获取所有数据库名、表名、储存过程以及参数列表
    SQL集合运算:差集、交集、并集
    sql数据分页
  • 原文地址:https://www.cnblogs.com/cszdsb/p/6484737.html
Copyright © 2020-2023  润新知