Head First 设计模式中的命令模式 的一个错误

简介:

最近在看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,如需转载请自行联系原作者
目录
相关文章
|
15天前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
2月前
|
设计模式 存储 Java
【十二】设计模式~~~行为型模式~~~命令模式(Java)
文章详细介绍了命令模式(Command Pattern),这是一种对象行为型模式,用于将请求封装成对象,实现请求发送者与接收者的解耦,从而降低系统耦合度、提高灵活性,并支持命令的排队、记录、撤销和恢复操作。通过案例分析、结构图、时序图和代码示例,文章展示了命令模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
|
3月前
|
设计模式 JavaScript API
js设计模式【详解】—— 命令模式
js设计模式【详解】—— 命令模式
37 6
|
3月前
|
设计模式 Java
Head First设计模式学习笔记
Head First设计模式学习笔记
|
4月前
|
设计模式
命令模式-大话设计模式
命令模式-大话设计模式
|
4月前
|
设计模式 Java uml
必知的技术知识:JAVA【设计模式】命令模式
必知的技术知识:JAVA【设计模式】命令模式
24 0
|
4月前
|
设计模式 Java
Java设计模式之命令模式详解
Java设计模式之命令模式详解
|
4月前
|
设计模式
设计模式之命令模式
设计模式之命令模式
|
5月前
|
设计模式 Java 调度
【设计模式系列笔记】命令模式
命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许使用不同的请求、队列或日志请求参数化客户端对象,同时支持撤销操作。
57 1
|
5月前
|
设计模式 存储 Java
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
62 0