Breaking down the Command pattern
If you’ve been reading the book sequentially, you’re braver than I am; if not, that’s OK, too! I’m only pausing here because we’re leaving the Creational patterns behind and diving into the Behavioral category with the Command pattern, which is all about communication and connection. The Command pattern lets you create actions as objects, meaning you can customize them during instantiation, execute them immediately, store them for later, and even undo or redo them, which is useful when:
- You want to create actions as self-contained objects with all the information needed to execute the action.
- You want interchangeable actions that can work on any receiving object.
- You want to store or queue sequences of actions to be triggered later.
- You want to avoid hard-wiring requests to the client making the request.
- You want to support undo and redo functionality.
Commands shouldn...