Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations
execute()
stores state for reversalunexecute()
reverses the effects of a previous execute()
execute()
by invoking the corresponding operation(s) on Receiverexecute()
on the command. When commands are undoable, ConcreteCommand stores the state for undoing the command before invoking Execute.