Há alguma desvantagem no padrão singleton?[duplicado]
-
23-09-2019 - |
Pergunta
Possíveis duplicatas:
O que há de tão ruim nos Singletons
Problemas com padrão Singleton
Há alguma desvantagem no padrão singleton?Ouvi dizer que esta era uma pergunta de entrevista e não entendi o que isso significava.
imho, é sobre o uso e nada no padrão em si é problemático
Solução
A partir de Wikipedia:
Alguns consideram isso um Anti-padrão, julgando que é usado em excesso, introduz limitações desnecessárias em situações em que uma única instância de uma classe não é realmente necessária e introduz um estado global em um aplicativo.
Pessoalmente, desde que comecei a usar a primavera para obter o meu aplicativo automaticamente, nunca tive a necessidade de escrever um singleton.
Outras dicas
Essa é uma pergunta muito genérica, realmente depende dos seus casos de uso.Eu citaria o seguinte:
- Você sempre precisa de um mutex (ou bloco sincronizado) para proteger a chamada getInstance() inicial, o que pode ser problemático em alguns casos.
- É um truque esconder o fato de que você está criando uma variável global, e as variáveis globais são geralmente ruim.Porém, há muitos casos em que a simplicidade que trazem é apreciável, mas preste atenção para não abusar deles.
- Não testável ou pelo menos é difícil
- Difícil de encontrar classes dependentes
- Não permite subclasse
- ...