标签:
命令模式:
命令模式是对命令的封装。它将发出的命令的责任和执行的命令分隔开,委派给不同的对象。被委派的对象虽然具有执行的命令,但只有在接收到命令后,才会执行命令。
下面是命令模式的结构图:
命令模式涉及五个角色:
PS:值得注意的是:接收者类,具有接收到命令会执行的动作,但它只有在接收到命令时才会执行
源代码分析:
接收者类(Receiver)
Receiver.java:
public class Receiver { public Receiver(){ System.out.println("命令接收者:"); } public void action(){ System.out.println("接收到命令后,执行的动作"); } }
抽象命令类(Command)
Command.java:
public interface Command { public void excute(); }
具体命令类(ConcreteCommand)
ConcreteCommand.java:
public class ConcreteCommand implements Command{ Receiver receiver; public ConcreteCommand(Receiver receiver){ this.receiver = receiver; } //实现调用接收者类执行动作的方法 @Override public void excute() { receiver.action(); } }
发送请求类(Invoker)
Invoker.java
public class Invoker { private Command command; public Invoker(Command command){ this.command = command; } //发送命令 public void action(){ command.excute(); } }
客户端:
public class Client { public static void main(String[] args){ Receiver receiver = new Receiver(); Command command = new ConcreteCommand(receiver); Invoker invoker = new Invoker(command); invoker.action(); } }
运行结果:
命令接收者:
接收到命令后,执行的动作
标签:
原文地址:http://www.cnblogs.com/mercuryli/p/5304047.html