Behavioral Design Patterns-Command
The Command pattern like every other Behavioral pattern outlines how objects communicate with one another within Object Oriented programming. The Intent of the pattern is to Encapsulate a request as an object. Letting you parameterize clients with different requests, queue or log requests, and support undoable operations. The motivation of such a pattern is to support scenarios in which you have to issue a request to an object with out knowing any of the underlying behavior/operations associated with that request.
In a nutshell the Command pattern decouples the object that makes the request from the on that knows how to perform it.

In the Diagram above we have a Command interface with an abstract method called Execute. The Execute method will allow for an implementation of the command interface to invoke a request. A Client will create an instance of a Concrete command and pass to its parameters an receiver and the desired action for that receiver to perform.
Imagine for example you have a Receiver called document who has several actions for editing a file. You could create a concrete command object that depends on the receiver class and calls the maybe the delete action on the document receiver object.
With a created instance of a ConcreteCommand object for performing deletion operations a invoker can simply call Execute on the object. The invoker knows nothing about the underling operations or the internal bindings between the receiver and ConcreteCommand object.
As a result we decouple the object responsible for invoking the request from the one that performs it. The Command pattern allows for lightweight command class that are first class extendable class objects. Keep in mind that some commands may be coupled to past commands and need to be designed to store or reference previous states. For example, if your action is an undo or redo action. This will bring another issue for the designers to consider. How intelligent should my command objects be? Should it be bind to a receiver or perform the operation itself?
Like all Behavioral patterns the designer has to adjust for their desired intent.