Factory Method

Define an interface for creating an object, but let subclasses decide which class to
instantiate. Factory Method lets a class defer instantiation to subclasses.
Applicability
- A class can't anticipate the class of the objects it must create
- A class wants its subclasses to specify the objects it creates
- Need to delegate responsibility to helper subclasses
Consequences
- Provides hooks for subclasses
- Connects parallel class heirarchies