最近在看Head First 设计模式,其中命令模式中有讲到实现撤销功能,并且作者还出了一道题,
下面的是书中习题:
public class MarcoCommand implements Command
{
Command[] commands;
public MarcoCommand(Command[] commands)
{
this.commands = commands;
}
public void execute()
{
for (int i = 0; i < commands.Length; i++)
{
commands[i].execute();
}
}
public void undo()
{
//请实现撤销功能。
}
}
在看到这里的时候,其实脑子里已经完成了答案了,可是最后看到书后面的答案的时候,却感觉有点奇怪,仔细想想还有点意思.
书中的答案如下:
public class MarcoCommand implements Command
{
Command[] commands;
public MarcoCommand(Command[] commands)
{
this.commands = commands;
}
public void execute()
{
for (int i = 0; i < commands.Length; i++)
{
commands[i].execute();
}
}
public void undo()
{
for (int i = 0; i < commands.Length; i++)
{
commands[i].undo();
}
}
}
本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2012/11/19/2778037.html,如需转载请自行联系原作者