本文已参与[新人创作礼]活动,一起开启掘金创作之路。
说明
- 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
角色
- 命令接口
- 执行类
- 命令类
- 方法实现类
代码实现
- 先创建命令接口,及执行类,创建命令类及方法实现类,这里决定了调用方法实现类的哪种方法,是很值得学习的模式。
public interface ICommand {
void excute();
}
public class DealCommandSVImpl implements ICommand {
private IDealSV sv;
DealCommandSVImpl(){
sv = new DealSVImpl();
}
@Override
public void excute() {
sv.doSomeThing();
}
}
public class Invoker {
private ICommand command;
Invoker(ICommand command){
this.command = command;
}
public void action(){
command.excute();
}
}
public interface IDealSV {
void doSomeThing();
}
public class DealSVImpl implements IDealSV {
@Override
public void doSomeThing() {
System.out.println("做事的是我");
}
}
public class Test {
public static void main(String[] args){
ICommand command = new DealCommandSVImpl();
Invoker invoker = new Invoker(command);
invoker.action();
}
}