Provides hooks for subclasses
Consequence
Connects parallel class hierarchies
Consequence
Naming Convetions
Implementation
Parameterized Factory Methods
Implementation
Intent/Purpose
Defines an interface but lets subclasses decide what to return/create in that interface