Паттерн проектирования Singleton ограничивает класс так, чтобы он имел только один экземпляр на протяжении всего жизненного цикла приложения. Этот паттерн широко используется в Java для управления общими ресурсами и глобальными точками доступа.
java.lang.Runtime — классический пример паттерна Singleton в JDK. Он хранит один экземпляр на приложение и служит единственным интерфейсом между Java-процессом и операционной системой.
Конструкция enum в Java по своей природе основана на паттерне Singleton. Значения enum глобально доступны во всех классах — согласованно и потокобезопасно.
Классы Properties выигрывают от реализации Singleton: это гарантирует, что только одна копия существует на протяжении всего жизненного цикла приложения. Все классы получают доступ к одним и тем же конфигурационным данным без дублирования и проблем с рассинхронизацией.
В Spring IoC-контейнерах бины по умолчанию являются Singleton — создаётся только один экземпляр, который переиспользуется во всём приложении. При этом Spring предоставляет гибкость через альтернативные скоупы:
singleton — скоуп по умолчанию (один экземпляр на контейнер)prototype — создаёт новый экземпляр при каждом обращенииПаттерн Singleton полезен для:
Класс java.lang.Runtime в Java реализует паттерн Singleton, чтобы гарантировать наличие только одного экземпляра, который служит интерфейсом между Java-процессом и базовой операционной системой.
Новый — ещё не проверен сообществом
Вы