Когда и зачем его нужно использовать?
Прототип позволяет создавать копии (клонировать) объект, и таким образом создавать новый.
Использовать его стоит когда логичнее сделать копию объекта, а не создание нового и его инициализация через конструктор, когда не нет необходимости в отдельной иерархии классов и когда тип создаваемого объекта должен определиться непосредственно во время выполнения программы.