设计模式记录--命令模式
/** * */package org.rico.pattern.demo.command;/** * @author rico 2013-2-27 * 命令接口 */public interface Command {/** * 执行偷袭命令 */public void execute();/** * 取消命令 */public void undo();}
?
2、命令接口实现
/** * */package org.rico.pattern.demo.command;/** * @author rico 2013-2-27 */public class ConcreteCommand implements Command {private Receiver receiver;public ConcreteCommand(Receiver receiver) {this.receiver = receiver;}/* 执行偷袭命令(non-Javadoc) * @see org.rico.pattern.demo.command.Command#execute() */@Overridepublic void execute() {receiver.execute();}/* 取消命令(non-Javadoc) * @see org.rico.pattern.demo.command.Command#undo() */@Overridepublic void undo() {receiver.undo();}}
?
3、接收者
/** * */package org.rico.pattern.demo.command;/** * @author rico 2013-2-27 * 接收者 */public class Receiver {/** * 偷袭敌人 */public void execute() {System.out.println("偷袭敌人命令....");}/** * 取消偷袭敌人 */public void undo() {System.out.println("取消偷袭敌人命令....");}}
?
4、请求者
/** * */package org.rico.pattern.demo.command;/** * @author rico 2013-2-27 * 请求者 */public class Invoker {private Command command;public Invoker(Command command) {this.command = command;}/** * 偷袭敌人 */public void execute() {command.execute();}/** * 取消偷袭 */public void undo() {command.undo();}}
?
5、命令模式测试
/** * */package org.rico.pattern.demo.command;/** * @author rico 2013-2-27 * */public class DemoTest {/** * @param args */public static void main(String[] args) {//定义接收者Receiver receiver = new Receiver();//定义命令Command command = new ConcreteCommand(receiver);//定义请求者Invoker invoker = new Invoker(command);invoker.execute();//偷袭敌人命令invoker.undo();//取消偷袭敌人命令}}
?
?
?
?
?
?
?
?
?