The Factory method pattern belongs to the group of creational patterns,
it deals with the problem of creating objects (products) without specifying the exact class of object that will be created.
The factory method design pattern handles this problem by defining a separate method for creating the objects.
Subclasses can then override to specify the derived type of product [...]


