Intent
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
Command pattern decouples the object that invokes the operation from the one having the knowledge to perform it.
specify, queue, and execute requests at different times
将命令的调用和命令执行分开,时间上和空间上分开
How to
Command
declares an interface for executing an operation
ConcreteCommand
implements Execute by invoking the corresponding operation(s) on Receiver
Client
creates a ConcreteCommand object and sets its receiver
Invoker
asks the command to carry out the request
Receiver
knows how to perform the operations associated with carrying out a request
Konwn cases
Menu Command
Undo,Redo Command
RequestDispatcher
UML
样例代码