Membro desde: 23/12/2002 12:18:31
Mensagens: 146
Offline
Ola Pessoal,
Estava eu lendo algumas coisas a respeito de singleton, e o autor disse que era melhor usar hoje IoC ao invés de singleton, primeiro ele disse que o singleton em sistemas distribuidos pode dar problema, e também quando se trabalha com Threads, porém ele não falou o "porque" do problema.
Alguem com mais experiência poderia explicar os problemas de singleton?
Membro desde: 18/03/2005 13:10:33
Mensagens: 450
Localização: Natal/RN
Offline
Singletons em sistemas distribuídos podem dar problema porque se você usa singleton é porque você PRECISA que exista apenas uma instância da classe e em ambientes distribuídos você tem várias JVMs e, consequentemente, uma instância em cada uma dessas JVMs. O problema com threads é na hora da instanciação. Se você não tornar o getInstance() synchronized ou fizer a instanciação estática (mais recomendado, pois o synchronized é muito custoso) pode acontecer de duas threads instanciarem o singleton.
David Pereira Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica