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