The common pattern is use whenever you want to encapsulate inside an object all the data required for
performing, they given action.
This pattern is also known as a consumer producer pattern, mainly because it allows us to decouple
objects that produce the commands from their consumers.
Let's have a look at this UML diagram.
On one hand, we have the command interface, which specifies the contract for the concrete commands.
The concrete commands use the composition to store the receiver object.
On the other hand, we have the invoker, which is the object that knows how to execute the commands.
The Invoker refers to the command interface to perform a request which makes the Invoker independent
of how the request is performed.
Let's see how we can implement this pattern into Cote.