Command pattern

Encapsulate requests into objects called commands