The prototype class lets you use many instances of a specific class, without copying objects to different variables.
The most customizable option for programmatic creation is the Prototype pattern. This pattern consists in choosing an already existent object, with a clone() operation available, as the base for creating new objects of the same kind.
In the Prototype Pattern we create one standard object for each class, and clone that object to create new instances.