Использовал ли Prototype

«Использовал ли Prototype» — вопрос из категории Паттерны, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в Java нет прототипного наследования как в JavaScript. Вместо этого используется классическое наследование через классы и интерфейсы. Однако, в контексте паттернов проектирования, Prototype — это один из порождающих паттернов, который позволяет клонировать объекты без привязки к их конкретным классам.

Пример реализации:

interface Prototype {
    Prototype clone();
}

class ConcretePrototype implements Prototype {
    private String field;

    public ConcretePrototype(String field) {
        this.field = field;
    }

    @Override
    public Prototype clone() {
        return new ConcretePrototype(this.field);
    }
}

Использование:

Prototype original = new ConcretePrototype("value");
Prototype copy = original.clone();

Это полезно, когда создание объекта дорого (например, требует сложных вычислений или работы с БД), а нужно его копирование.