Sobes.tech
Junior — Middle

Můžeš uvést příklad situace nebo úkolu, kde se používá vzor Prototype pro vytváření objektů?

sobes.tech AI

Odpověď od AI

Паттерн Prototype используется, когда создание нового объекта напрямую через конструктор слишком дорогостоящее или сложное, и проще клонировать уже существующий объект.

Пример ситуации:

В игре есть сложный объект "монстр" с множеством настроек и состояний. Вместо того чтобы создавать каждого монстра с нуля, можно создать один прототип монстра и клонировать его, изменяя только необходимые параметры.

public class Monster implements Cloneable {
    private String type;
    private int health;

    public Monster(String type, int health) {
        this.type = type;
        this.health = health;
    }

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

    // геттеры и сеттеры
}

// Использование:
Monster prototype = new Monster("Orc", 100);
Monster newMonster = prototype.clone();
newMonster.setHealth(80); // изменяем только нужное

Такой подход экономит ресурсы и время на создание объектов с одинаковой базовой конфигурацией.