Junior — Middle
Podes dar um exemplo de uma situação ou tarefa em que o padrão Prototype seja utilizado para criar objetos?
sobes.tech IA
Resposta da IA
Паттерн 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); // изменяем только нужное
Такой подход экономит ресурсы и время на создание объектов с одинаковой базовой конфигурацией.