State Pattern A cleaner way for an object to change its behavior at runtime without resorting to large monolithic conditional statements. GOF