Command

This Design Pattern stems from [DP95], pp. 233. There the pattern is described as:

"Encapsulate a request as an object, thereby letting you parameterize clients with different requests, and support undoable operations. "