命令模式(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(); } } }