Синглтон — это порождающий шаблон проектирования, который гарантирует, что существует только один объект в своем роде, и дает другому коду единую точку доступа к нему.

Шаблон singleton используется для создания одного экземпляра класса, как следует из названия. Есть несколько ситуаций, когда должен существовать только один экземпляр класса и должно применяться ограничение. Кэши, пулы потоков и реестры — это лишь несколько примеров…