Skeleton of a class to be subclassed to refine behavior.
- Implement common part in a class, let subclasses implement parts that vary
- Common parts need to be externalized
- Improves code reuse
- Prevents duplicate code
- Factory Method: are often called by Template Methods
- Strategy: Strategy uses delegation to vary behavior, while Template Method uses inheritance