Understanding the Command design pattern
The Command pattern works with the following terms—Command
, Receiver
, Invoker
, and Client
:
A
Command
object knows about theReceiver
objects and invokes a method of theReceiver
object.Values for parameters of the receiver method are stored in the
Command
objectThe invoker knows how to execute a command
The client creates a
Command
object and sets its receiver
The main intentions of the Command pattern are as follows:
Encapsulating a request as an object
Allowing the parameterization of clients with different requests
Allowing to save the requests in a queue (we will talk about this later in the chapter)
Providing an object-oriented callback
The Command pattern can be used in the following multiple scenarios:
Parameterizing objects depending on the action to be performed
Adding actions to a queue and executing requests at different points
Creating a structure for high-level operations that are based on smaller operations
The following Python code implements the...