The Creator is an abstract class that contains the
implementations for all of the methods to
manipulate products, except for the factory method.
The abstract “factoryMethod()” is what all Creator
subclasses must implement.
The ConcreteCreator implements the
factoryMethod(), which is the method that actually
produces products.
The ConcreteCreator is responsible for creating one
or more ConcreteProduct. It is the only class that has
the knowledge of how to create these products.