设计模式之命令模式
1.名词解释:
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
代码:
抽象命令类:
package CommandPattern;
public abstract class Command {
??? protected Receiver receiver;
???
??? public Command(Receiver receiver) {
??? ?this.receiver = receiver;
??? }
???
??? public abstract void execute();
}
具体命令类:
package CommandPattern;
public class ConcreateCommand extends Command {
?
?public ConcreateCommand(Receiver receiver) {
??super(receiver);
?}
?
?public void execute() {
??receiver.excute();
?}
}
调用类:
package CommandPattern;
import java.util.ArrayList;
import java.util.List;
public class Invoker {
?private List<Command> commandList = new ArrayList<Command>();
?
?public void addCommand(Command command) {
??if(command == null) {
???return;
??}
??this.commandList.add(command);
?}
?
?public void delCommand(Command command) {
??if(command == null) {
???return;
??}
??this.commandList.remove(command);
?}
?
?public void ExecuteCommand() {
??for(Command tmpCommand : commandList) {
???tmpCommand.execute();
??}
?}
}
接收者类:
package CommandPattern;
public class Receiver {
??? public void excute() {
??? ?System.out.println("You are execute command");
??? }
}
?