Create a demo Factory Design Pattern.

Creates objects without exposing the instantiation logic to the client.

Refers to the newly created object through a common interface