本文共 1991 字,大约阅读时间需要 6 分钟。
把一个请求或操作封装在命令对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或记录日志,可以提供命令的撤销和恢复功能。
//命令角色public interface Command { void execute();}//具体命令角色(打开电视)public class CommandOn implements Command { private TV myTv; public CommandOn(TV myTv) { this.myTv = myTv; } @Override public void execute() { myTv.turnOn(); }}//具体命令角色(切换频道)public class CommandChannel implements Command { private TV myTv; public CommandChannel(TV myTv) { this.myTv = myTv; } @Override public void execute() { myTv.commandChannel(); }}//具体命令角色(关闭电视)public class CommandOff implements Command { private TV myTv; public CommandOff(TV myTv) { this.myTv = myTv; } @Override public void execute() { myTv.turnOff(); }}//命令控制者public class Control { private CommandChannel channel; private CommandOn commandOn; private CommandOff commandOff; public Control(CommandChannel channel, CommandOn commandOn, CommandOff commandOff) { this.channel = channel; this.commandOn = commandOn; this.commandOff = commandOff; } public void turnOn() { commandOn.execute(); } public void turnOff() { commandOff.execute(); } public void commandChannel() { channel.execute(); } }//命令接受者public class TV { public int currentChannel = 0; public void turnOn() { System.out.println("现在电视是打开的"); } public void turnOff() { System.out.println("现在电视是关闭的"); } public void commandChannel() { System.out.println("频道已切换" + currentChannel); }}
上一篇:
下一篇:转载地址:http://ymrai.baihongyu.com/