2.2 Abstract Factory

The abstract factory pattern is a further layer of abstraction added on top of the factory pattern. The abstract factory pattern allows you to break up the creation of complex objects into smaller pieces and hide all of this complexity behind a simple-to-understand interface.