Factory - Abstract Factory
Where a class cannot anticipate a class or groups of classes to instantiate.
Where “parallel” connection of class hierarchies is needed.
Support of multiple look and feel standards (e.g. Java’s JFC: Windows, Metal, Motif style), AWT peers.
Subclasses can produce specific products.
Subclass instance is chosen at run-time.
Type dependencies are removed.
Product’s composition gets hidden.