Junior — Middle
Môžete uviesť príklad situácie alebo úlohy, kde sa používa vzor Prototype na vytváranie objektov?
sobes.tech AI
Odpoveď 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); // изменяем только нужное
Такой подход экономит ресурсы и время на создание объектов с одинаковой базовой конфигурацией.