A behavioral design pattern that turns a request into a stand-alone object that contains all information about the request.
"The command pattern allows you to parameterize objects with operations, delay or queue a request's execution, and support undoable operations."