Frequently asked questions
Q1. Can there be no Receiver
and ConcreteCommand
implement execute method?
A: Yes, it is definitely possible to do so. Many software applications use the Command pattern in this way too. The only thing to note here is the interaction between the invoker and receiver. If the receiver is not defined, the level of decoupling goes down; moreover, the facility to parameterize commands is lost.
Q2. What data structure do I use to implement the queue mechanism in the invoker object?
A: In the stock exchange example that we studied earlier in the chapter, we used a list to implement the queue. However, the Command pattern talks about a stack implementation that is really helpful in the case of redo or rollback development.