package Command;

//执行者
public class Receiver {

   public void  action (){
       System.out.println("执行任务");
    }

}

package Command;

public interface Command {
    void execute();
}
class ConcreteCommand implements Command{

    private Receiver receiver;

    public ConcreteCommand(Receiver receiver){
        super();
        this.receiver=receiver;
    }
    public void execute() {
        //执行前的处理
        receiver.action();
    }
}
package Command;

public class invoke {
    //可以通过容器容纳很多命令,进行批处理
    private Command command;

    public invoke(Command command) {
        this.command = command;
    }

    //调用命令的方法
    public void call(){
        command.execute();
    }
}

package Command;

public class Client {
    public static void main(String[] args) {
        Command c= new ConcreteCommand(new Receiver());

        invoke i =new invoke(c);
        i.call();

        new Receiver().action();
    }
}

运行结果: