Назначение
Задает виды создаваемых объектов с помощью экземпляра прототипа и создает новые объекты путем копирования этого прототипа.
Использование шаблона в JDK
(примеры частично взяты с этого ресурса)
java.lang.Object#clone() (класс должен наследовать java.lang.Cloneable)
java.lang.Object#clone() (класс должен наследовать java.lang.Cloneable)
// Дуальная идиома "Конструктор копирования"
// java.lang.Cloneable и java.io.Serializable - идиома "Маркер интерфейс"
----------------------------------------------------------------
-----------------java.lang.Object#clone()------------------
----------------------------------------------------------------
--------------- "Конструктор копирования"----------------