The Prototype design pattern provides a solution:
Define a Prototype object that returns a copy of itself.
Create new objects by copying a Prototype object.
Describing the Prototype design in more detail is the theme of the following sections.
See Applicability section for all problems Prototype can solve.