https://readlearncode.com/design-patterns/factory-pattern/
Java EE Revisits the Factory Pattern