Intent: Separate the construction of a complex object from its representation so that the same construction process can create different representations.
Intent: Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.