Вкратце: Шаблон позволяет удостовериться, что создаваемый объект — единственный в своём классе. Аналогия: У страны может быть только один президент. Он должен действовать, когда того требуют обстоятельства и долг. В данном случае президент — одиночка.
Шаблон «Одиночка» позволяет ограничивать создание класса единственным объектом. Это удобно, когда для координации действий в рамках системы требуется, чтобы объект был единственным в своём классе.
Минусы шаблона: вносит в приложение глобальное состояние, так что изменение в одном месте может повлиять на все остальные случаи использования, может быть сложным в отладке.
Делает код сильно связанным (tightly coupled), а создание прототипа (mocking) «Одиночки» может быть затруднено.