Гарантирует, что ровно один экземпляр класса существует во всем приложении и доступен глобально (например, из диспетчера конфигурации или пула соединений) через частный конструктор плюс статический метод доступа. Настоящая сложность заключается в том, чтобы сделать это безопасным при одновременном выполнении и устойчивым к отражению/сериализации — см. специальный раздел «Синглтон и безопасность потоков».
Пример
// Classic GoF Singleton: enforced by the class itselfpublicclassConfigManager {
privatestaticfinalConfigManagerINSTANCE=newConfigManager();
privateConfigManager() {} // private constructor blocks any other instantiationpublicstaticConfigManagergetInstance() { return INSTANCE; }
}
Итог
Гарантирует, что ровно один экземпляр класса существует во всем приложении и доступен глобально (например,
Какую проблему решает паттерн Синглтон на высоком уровне? · Sobeso