java学习笔记-设计模式19(命令模式)

意图

  将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作

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 Invoker {  
      
    private Command command;  
      
    public Invoker(Command command) {  
        this.command = command;  
    }  
  
    public void action(){  
        command.exe();  
    }  
} 

  

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();  
    }  
}  

  

  转自:http://blog.csdn.net/zhangerqing/article/details/8243942

原文地址:https://www.cnblogs.com/gxl00/p/5050587.html