**Intent:** Separate the construction of a complex object from its representation so that the same construction process can create different representations.
**Applicability:** Use the Abstract Factory pattern when
##Factory Method
**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.