2 года назад
Паттерн: Прототип
Прототип - Это порождающий паттерн проектирования, которые позволяет копировать объекты, не вдаваясь в подробности их реализации. У вас есть объект, который нужно скопировать. Как это сделать? Нужно создать пустой объект такого же класса, а затем поочерёдно скопировать значения всех полей из старого объекта в новый. Прекрасно! Но есть нюанс. Не каждый объект удастся скопировать таким образом, ведь часть его состояния может быть приватной, а значит — недоступной для остального кода программы. Паттерн Прототип поручает создание копии самим копируемым объектам. Он вводит общий интерфейс для всех объектов, поддерживающих клонирование...
Паттерн "Прототип". Что это вообще такое?
Давайте представим, что у нас есть Барсик. И он нам настолько сильно нравится, что мы хотим создать полную его копию. В реальной жизни, конечно, мы так не можем сделать. Но вот в коде мы можем создать новый объект класса котика и вручную указать новому коту все параметры и их значения, которые были у Барсика. Звучит отлично, но проблема в том, что у Барсика какие-то поля могут быть приватными и мы не можем получить их значения. Плюс, иногда мы вообще не имеем доступа к Барсику и общаемся с ним через интерфейсы (например, когда используем сторонние библиотеки)...