The prototype pattern is a creational design pattern in software development. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects.
The Factory knows how to find the correct Prototype, and each Product knows how to spawn new instances of itself.
For more information about prototype design pattern: Source making Wikipedia Article