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,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
设计模式 存储 算法
「全网最细 + 实战源码案例」设计模式——命令模式
命令模式(Command Pattern)是一种行为型设计模式,将请求封装成独立对象,从而解耦请求方与接收方。其核心结构包括:Command(命令接口)、ConcreteCommand(具体命令)、Receiver(接收者)和Invoker(调用者)。通过这种方式,命令的执行、撤销、排队等操作更易扩展和灵活。 适用场景: 1. 参数化对象以操作。 2. 操作放入队列或远程执行。 3. 实现回滚功能。 4. 解耦调用者与接收者。 优点: - 遵循单一职责和开闭原则。 - 支持命令组合和延迟执行。 - 可实现撤销、恢复功能。 缺点: - 增加复杂性和类数量。
64 14
「全网最细 + 实战源码案例」设计模式——命令模式
|
6月前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
7月前
|
设计模式 存储 Java
【十二】设计模式~~~行为型模式~~~命令模式(Java)
文章详细介绍了命令模式(Command Pattern),这是一种对象行为型模式,用于将请求封装成对象,实现请求发送者与接收者的解耦,从而降低系统耦合度、提高灵活性,并支持命令的排队、记录、撤销和恢复操作。通过案例分析、结构图、时序图和代码示例,文章展示了命令模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
|
8月前
|
设计模式 Java
Head First设计模式学习笔记
Head First设计模式学习笔记
|
8月前
|
设计模式 JavaScript API
js设计模式【详解】—— 命令模式
js设计模式【详解】—— 命令模式
74 6
|
9月前
|
设计模式 Java uml
必知的技术知识:JAVA【设计模式】命令模式
必知的技术知识:JAVA【设计模式】命令模式
43 0
|
9月前
|
设计模式 Java
Java设计模式之命令模式详解
Java设计模式之命令模式详解
|
9月前
|
设计模式
命令模式-大话设计模式
命令模式-大话设计模式
|
9月前
|
设计模式
设计模式之命令模式
设计模式之命令模式
|
10月前
|
设计模式 存储 Java
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
92 0