Назад к вопросам
СБЕР
Middle — Middle+
65
Каким образом можно реализовать паттерн Prototype вместе с паттерном Singleton?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, а Prototype позволяет создавать копии объектов. Чтобы совместить их, можно сделать Singleton-класс, который хранит один прототип объекта и предоставляет метод для клонирования этого прототипа при необходимости.
Пример на Java:
public class PrototypeSingleton implements Cloneable {
private static final PrototypeSingleton instance = new PrototypeSingleton();
private PrototypeSingleton() {
// приватный конструктор
}
public static PrototypeSingleton getInstance() {
return instance;
}
@Override
protected PrototypeSingleton clone() {
try {
return (PrototypeSingleton) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
// Метод для получения клона прототипа
public PrototypeSingleton getClone() {
return this.clone();
}
}
Таким образом, у вас есть единственный прототип (Singleton), и вы можете создавать его копии через метод getClone(). Это полезно, когда нужно контролировать создание объектов, но при этом иметь возможность быстро создавать их копии.