`
hanlingbo2008
  • 浏览: 79616 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

命令模式(Command)例子2增加宏命令

阅读更多

命令模式(Command)例子2增加宏命令

 

为julia的录音机增加一个记忆功能,可以把命令记录下来,在任何需要时重新把这些记录下来的命令一次性执行,这就所谓的宏命令。这时,julia的录音机就多了一个新按钮用于执行宏命令。

 

增加宏命令后的代码如下:

/** 在Julia中加入的宏命令代码*/
    public static void test2()
    {
    	Command play = new PlayCommand(myAudio);
        Command stop = new StopCommand(myAudio);
        Command rewind = new RewindCommand(myAudio);

        MacroCommand macro = new MacroAudioCommand();
        macro.add(play);
        macro.add(stop);
        macro.add(rewind);
        macro.add(stop);
        macro.add(play);
        macro.add(stop);

        macro.execute();

    }

 

public interface MacroCommand extends Command
{
	void execute();
	
	void remove(Command toRemove);
	
	void add(Command toAdd);
}

  

 

import java.util.Vector;

public class MacroAudioCommand implements MacroCommand
{
     private Vector commandList = new Vector();

     public void add(Command toAdd)
     {          
		commandList.addElement(toAdd);
     }

     public void remove(int index)
     {
		commandList.remove(index);
     }

     public void remove(Command toRemove)
     {
		commandList.removeElement(toRemove);
     }

     public void execute() 
     { 
		Command nextCommand;

		for (int i=0; i < commandList.size(); i++)
		{
			nextCommand = (Command) commandList.elementAt(i);
			nextCommand.execute();
        }
     } 
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics