O singleton pattern é um membro do GoF's livro de padrões, mas ultimamente parece um pouco órfão do mundo desenvolvedor. Eu ainda uso um monte de singletons, especialmente para classes de fábrica, e enquanto você tem que ser um pouco cuidadoso com questões de multithreading (como qualquer classe na verdade), eu falho em ver porque eles são tão horríveis.
Stack Overflow especialmente parece assumir que todos concordam que os Singletons são maus. Porquê?
Por favor, apoie suas respostas com "fatos, referências, ou conhecimentos específicos"
Veja o padrão da Wikipedia Singleton_pattern
É também considerado um anti-padrão por algumas pessoas, que sentem que é usado em excesso, introduzindo limitações desnecessárias em situações em que uma única instância de uma classe não é realmente necessária[1][2][3][4].
Referências (apenas referências relevantes do artigo)