State
Encapsulate interchangable behaviors and use delegation to decide which behavior to use.
Strategy
Subclasses decide how to implement steps in an algorithm.
Template Method
Encapsulate state-based behavior and delegate behavior to the current state.