将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。
public class Command_Main {
public static void main(String[] args) {
Button button = new Button();
button.setCommand(new EatCommand());
button.doIt();
}
}
//请求发送者 invoker
class Button{
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void doIt(){
if (command != null)
command.execute();
else
System.out.println("无命令需要进行执行");
}
}
//核心命令抽象类
abstract class Command<T>{
abstract T execute();
}
class OpenCommand extends Command<Boolean>{
@Override
Boolean execute() {
System.out.println("打开成功");
return Boolean.TRUE;
}
}
class EatCommand extends Command<String>{
@Override
String execute() {
System.out.println("吃饭ing");
return "吃饭结束";
}
}