The Command design pattern solves problems like:
How can coupling the invoker of a request to a request be avoided? How can an object be configured with a request?
See Applicability section for all problems Command can solve. See Solution section for how Command solves the problems.