Version 1: State-Dependent Behavior
Version 2: Static Dispatch
Version 3: Dynamic Dispatch
Version 4: The Strategy Pattern
Version 5: The Decorator Pattern
Version 6: Functors
uw.uml