上一篇
在软件开发中,Java命令模式是一种非常实用的行为型设计模式。它将请求封装为对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。本命令模式教程将带你从零开始,一步步理解并实现命令模式。
命令模式(Command Pattern)的核心思想是将一个请求封装成一个对象,从而让你可以使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
下面我们通过一个简单的例子——模拟一个遥控器控制灯的开关——来演示设计模式Java中的命令模式实现。
// 命令接口public interface Command { void execute(); void undo(); // 可选:用于支持撤销操作} // 灯类作为接收者public class Light { public void turnOn() { System.out.println("灯打开了!"); } public void turnOff() { System.out.println("灯关闭了!"); }} // 开灯命令public class LightOnCommand implements Command { private Light light; public LightOnCommand(Light light) { this.light = light; } @Override public void execute() { light.turnOn(); } @Override public void undo() { light.turnOff(); }}// 关灯命令public class LightOffCommand implements Command { private Light light; public LightOffCommand(Light light) { this.light = light; } @Override public void execute() { light.turnOff(); } @Override public void undo() { light.turnOn(); }} // 遥控器作为调用者public class RemoteControl { private Command command; public void setCommand(Command command) { this.command = command; } public void pressButton() { command.execute(); } public void pressUndo() { command.undo(); }} public class Main { public static void main(String[] args) { // 创建接收者 Light light = new Light(); // 创建具体命令 Command lightOn = new LightOnCommand(light); Command lightOff = new LightOffCommand(light); // 创建调用者 RemoteControl remote = new RemoteControl(); // 执行开灯 remote.setCommand(lightOn); remote.pressButton(); // 输出:灯打开了! // 执行关灯 remote.setCommand(lightOff); remote.pressButton(); // 输出:灯关闭了! // 撤销(重新开灯) remote.pressUndo(); // 输出:灯打开了! }} 当你需要:
通过本篇命令模式实现教程,你应该已经掌握了 Java 中命令模式的基本结构和使用方法。命令模式不仅让代码更清晰、更灵活,还为复杂功能(如撤销、宏命令)提供了坚实的基础。希望你能将这一强大的设计模式Java技巧应用到自己的项目中!
如果你觉得这篇Java命令模式教程对你有帮助,欢迎分享给更多正在学习设计模式的朋友!
本文由主机测评网于2025-12-20发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251210701.html