命令模式
1 创建一个命令接口:
package commandpattern;
public interface Command {
void execute();
}
2 创建一个接收命令并执行的 类
package commandpattern;
public class Receiver {
public void action(){
System.out.println("执行了具体的操作");
}
}
3 创建一个 请求者,发出命令请求:
package commandpattern;
public class Invoker {
private Command mCommand;
public Invoker(Command mCommand) {
this.mCommand = mCommand;
}
public void action(){
mCommand.execute();
}
}
4 创建一个命令实体类,通过构造方法注册命令接收者,传递命令:
package commandpattern;
public class ConcretCommand implements Command{
private Receiver mReceiver;
public ConcretCommand(Receiver mReceiver) {
this.mReceiver = mReceiver;
}
@Override
public void execute() {
mReceiver.action();
}
}
5 执行整个命令传递过程:
package commandpattern;
public class Client {
public static void main(String[] args) {
//构造一个接收者对象
Receiver receiver = new Receiver();
//根据接收者对象,构造一个命令者变量,指向具体命令着对象
Command concretCommand = new ConcretCommand(receiver);
//根据命令着 对象,构造一个请求者对象,多态属性
Invoker invoker = new Invoker(concretCommand);
//请求者发出请求行为
invoker.action();
}
}
输出结果:执行了命令的操作