4.2 Command

One of my all-time favorite patterns is the command pattern. The command pattern defines a way for you to extract the functionality from one class and use and restructure this functionality in any other class in your application.