The command pattern adds a level of abstraction between actions that must be done, and the object that invokes those actions, normally at a later time. In the command pattern, client code creates a
Command object that can be executed at a later date. This object knows about a receiver object that manages its own internal state when the command is executed on it. The
Command object implements a specific interface (typically it has an
do_action method, and also keeps track of any arguments required to perform the action. Finally, one or more
Invoker objects execute the command at the correct time.
Here's the UML diagram:
A common example of the command pattern is actions on a graphical window. Often, an action can be ...