Summary
Phew! That was a lot to cover, but we made it through the Command pattern with flying colors! This one takes a little while to digest, especially if you’ve come across examples in the wild that didn’t distinguish between reusable and coupled commands (i.e., commands with and without state information). However, knowing how to implement the pattern correctly for different scenarios is key not just to the Command pattern, but to all design patterns (as we progress through the book, you’ll hear me bang on that over and over).
Remember, the Command pattern is useful when you want to create actions that are treated like objects. There are two types of commands, reusable and coupled: reusable commands are interchangeable actions that can work on any receiving object while coupled commands are unique actions that store state information and are bound to their receiving object. Commands can be stored or queued to be triggered later or in sequence and are perfectly...