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

Foi útil?

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.
  1. Não testável ou pelo menos é difícil
  2. Difícil de encontrar classes dependentes
  3. Não permite subclasse
  4. ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top