Abstract Factory pattern

The Abstract Factory pattern provides an interface for creating
families of related or dependent objects without specifying their
concrete classes.
Abstract Factory pattern

updated package name