接收者: Reciever
命令:Comman
执行者:Invoker
用户:Client
执行伪代码:
// 有一个接收者
Reciever reciever = new Reciever();
// 接收者能执行各种命令
Command command1 = new ConcreteCommandOne(reciever);
Command command2 = new ConcreteCommandTwo(reciever);
// 有一个调用者,能执行给定的命令
Invoker invoker = new Invoker();
invoker.setCommand(command1).action();
invoker.setCommand(command2).action();
example 源码
// 拥有一个收音机
AudioPlayer audioPlayer = new AudioPlayer();
// 收音机拥有各种功能
PlayCommand playCommand = new PlayCommand(audioPlayer);
RewindCommand rewindCommand = new RewindCommand(audioPlayer);
StopCommand stopCommand = new StopCommand(audioPlayer);
// 有一个键盘
Keypad keypad = new Keypad();
// 执行给定的命令
keypad.setCommand(playCommand).action();
keypad.setCommand(rewindCommand).action();
keypad.setCommand(stopCommand).action();
}