《Head First 设计模式》命令模式
来源:互联网 发布:威斯布鲁克数据 编辑:程序博客网 时间:2024/05/21 22:41
命令模式:将请求封装为对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。
package headfirst.command.undo;import java.util.*;//// This is the invoker//public class RemoteControlWithUndo {Command[] onCommands;Command[] offCommands;Command undoCommand; public RemoteControlWithUndo() {onCommands = new Command[7];offCommands = new Command[7]; Command noCommand = new NoCommand();for(int i=0;i<7;i++) {onCommands[i] = noCommand;offCommands[i] = noCommand;}undoCommand = noCommand;} public void setCommand(int slot, Command onCommand, Command offCommand) {onCommands[slot] = onCommand;offCommands[slot] = offCommand;} public void onButtonWasPushed(int slot) {onCommands[slot].execute();undoCommand = onCommands[slot];} public void offButtonWasPushed(int slot) {offCommands[slot].execute();undoCommand = offCommands[slot];} public void undoButtonWasPushed() {undoCommand.undo();} public String toString() {StringBuffer stringBuff = new StringBuffer();stringBuff.append("\n------ Remote Control -------\n");for (int i = 0; i < onCommands.length; i++) {stringBuff.append("[slot " + i + "] " + onCommands[i].getClass().getName()+ " " + offCommands[i].getClass().getName() + "\n");}stringBuff.append("[undo] " + undoCommand.getClass().getName() + "\n");return stringBuff.toString();}}
0 0
- Head First设计模式1 命令模式
- Head First设计模式-命令模式
- Head First设计模式 -- 命令模式
- 《Head First 设计模式》命令模式
- 《Head First 设计模式》之命令模式
- Head First设计模式-命令模式
- <Head First 设计模式>:命令模式:Command
- First Head-设计模式:命令模式
- Head First---命令模式
- Head First 命令模式
- Head First 设计模式
- Head-first设计模式
- head first 设计模式
- head first 设计模式
- Head First 设计模式
- 《Head First 设计模式》
- Head First设计模式
- Head First《设计模式》
- javascript深入了解文章
- (三)uboot移植--GSC3280芯片logo显示
- Lisp介绍之七个原始操作符
- [OOP]hw002 Student2
- 一篇文章就能掌握SPI总线
- 《Head First 设计模式》命令模式
- IOS高级开发~Runtime(四)
- Java中的equals()和hashCode()契约
- Leetcode_ZigZag Conversion(c++ version)
- servlet简单使用filter解决编码问题
- Validate Binary Search Tree
- delphi cmd
- ASIHTTPRequest详细介绍,使用方法
- Unity3D如何有效地组织代码?