Назад к вопросам
СБЕР
Junior — Middle
67
Объясните различия между паттернами Singleton и Prototype при создании бинов.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Паттерны Singleton и Prototype относятся к способам создания объектов (бинов) в Java, но имеют разные цели и поведение:
-
Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему. Это удобно для объектов, которые должны быть уникальными, например, конфигурация или менеджер соединений.
-
Prototype создаёт новый экземпляр объекта при каждом запросе. Используется, когда нужно иметь множество похожих, но независимых объектов.
Пример в контексте Spring:
// Singleton (по умолчанию)
@Component
public class MySingletonBean {
// один экземпляр на весь контекст
}
// Prototype
@Component
@Scope("prototype")
public class MyPrototypeBean {
// новый экземпляр при каждом запросе
}
Таким образом, Singleton экономит ресурсы и обеспечивает единообразие, а Prototype даёт гибкость и независимость экземпляров.