分析项目中变化与不变化部分,提取变化部分抽象成接口+实现
定义
命令模式:将请求、命令、动作等封装成对象,这样可以让项目使用这些对象来参数化其他对象。使得命令的请求者和执行者解耦。简单理解为:决策者只要发出一个命令。命令具体是由哪个执行者执行以及执行者执行的过程对于决策者而言不必关心的
Demo
命令接口
public interface Command
{
public void exe();
}
命令实现
public class MyCommand implements Command
{
private Receiver receiver;
public MyCommand(Receiver receiver)
{
this.receiver = receiver;
}
@Override
public void exe()
{
receiver.action();
}
}
执行者
public class Receiver
{
public void action()
{
System.out.println("command received!");
}
}
决策者发出命令,执行者执行
public class Test
{
public static void main(String[] args)
{
Receiver receiver = new Receiver();
Command cmd = new MyCommand(receiver);
Invoker invoker = new Invoker(cmd);
invoker.action();
}
}