1 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化; 对请求排队或者记录请求日志,以及支持可撤销的操作。这个例子,脱了裤子。
class Television{ public void turnOn(){ System.out.println("television on"); } } abstract class Command{ public abstract void execute(); } class OpenTelevisionCommand extends Command{ private Television television; public OpenTelevisionCommand(Television television) { this.television = television; } @Override public void execute() { television.turnOn(); } } class Invoker{ private Command command; public Invoker(Command command) { this.command = command; } public void call(){ command.execute(); } } public class Test { public static void main(String[] args){ Television television = new Television(); Command command = new OpenTelevisionCommand(television); Invoker invoker = new Invoker(command); invoker.call(); } }