Binding Actions with the Command Pattern
In the last chapter, we learned how to manage and optimize memory usage when creating massive amounts of objects with the Object Pool design pattern. In this chapter, we’ll dive into creating actionable requests that can be customized, queued, and undone with the Command pattern. When I say actionable requests, what we’re really talking about are commands that come pre-packaged with all the information they need to be executed. This way, when we need the requests to do their work, they already have everything they need to get their job done!
The power behind the Command pattern (other than being encapsulated as its own object) is the ability to deal with abstractions. Like other patterns we’ve covered, the Command pattern uses underlying interfaces, so the client or system doesn’t need to know the exact details of the command or even how it’s supposed to be fired (no how or why, just the when).
Think...