Назначение шаблона синглтона - «Настроить один раз. Использовать несколько раз». Обычно это используется для обмена данными или ресурсами любого типа, как указано в одном из ответов выше. Но также полезно включить любое приложение управления. (подумайте JMX, если это Java)
У вас есть один экземпляр определенного класса, который вы можете использовать несколько раз. Поскольку существует только один экземпляр, при соответствующей настройке этого экземпляра вы можете отразить изменения конфигурации в приложении. Следовательно, одноэлементный шаблон дает возможность включить «панель управления» для вашего приложения.
Spring или Spring.NET (реализация Spring для .NET) полезны для настройки и внедрения синглетонов. Те же аргументы применимы к любому виду внедрения зависимостей. Вы должны прочитать о внедрении зависимости в целом, чтобы использовать всю мощь. Истинный синглтон, в нескольких JVM или кластерах, обычно сложнее создавать и управлять. и может потребоваться поддержка инструмента. На практике нет необходимости создавать и поддерживать это.
Не путайте синглетоны со статиками! Конструкция выглядит аналогично, но может быть довольно разной. Теперь барабанить своей собственной трубой! Здесь - ссылка на статью, которую я написал о статических методах.