Назад к вопросам
Middle
69
questionbank

В каких случаях можно использовать паттерн прототип?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Паттерн прототип используется в следующих случаях:

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

Пример простого копирования (без учета глубокого копирования вложенных объектов):

class Prototype implements Cloneable {
    private String value;

    public Prototype(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

// Использование
Prototype original = new Prototype("initial");
try {
    Prototype copy = (Prototype) original.clone();
    System.out.println(copy.getValue()); // initial
} catch (CloneNotSupportedException e) {
    e.printStackTrace();
}