Acho que devo ter acessado o guj de um universo paralelo … o que se passa com vcs ?
Desktop é uma classe singleton no JSE. Onde é que está escrito que ele é um singleton ? Cadê a assinatura souumsingleto.getsingleton ? Compare com Calendar.getInstance e Locale.getInstance que não são singleton.
Tente injetar Desktop numa classe. É muito simples com Guice, não tanto com Spring, mas e dai ? é possivel. é o que interessa.
confundir singleton dom DI ? mas que raios vcs estão pensando ? Singleton é um padrão criacional !
Vc se esquecem que DI usa factories. Alguem tem que criar os objetos para eles serem injetados !! em todos os motores de DI vc pode configurar essas factories. O ponto não é injetar, mas sim criar. Se a classe ñ é singleton várias instancias podem ser criadas mesmo com um motor de DI.
Singleton como acesso global é subsittuido por Registry.
@Singleton é a perpetuação da asneira. Não satisfeitos com a confusão do VO o povo da jcp adora meter lenha na fogueira. A culpa é do Spring que chama - erradamente - de singleton objetos que são na realidade shared object. E como o povo do Spring está na jcp… bom, já se viu.
Singletons reais são raros. Mas isso não invalida o padrão. O problema é o mau entendimento que as pessoas têm de padrões. Não só design patterns, mas de outros como Produtor-Consumir que é essencial em mensageria e concorrencia.
Castigar o singleton pelo mau uso que os programadores fazem dele é como castigar a tinta pelas palavras groseiras que se escrevem com ela. Ainda mais absurdo é culpar todos os padrões como um todo. É como se castigássemos o próprio alfabeto por permitir escrever palavras.
Vcs não estão dizendo coisa com coisa. Quem ler isso vai achar que padrões é uma porcaria. A mensagem a ser transmitida não é essa. É exatamente ao contrário. Foi depois que padrões foram introduzidos na API do java que ele ficou mais limpo. A API de collections é um otimo exemplo assim como a nova NIO2 usando Visitor para iterar arquivos. E já a NIO tinha melhorado usando uma versão de observer. E a JDBC que todo o mundo usa toda a hora é um excelente exemplo de Bridge.
O melhor e mais edgy de java é feito com aplicação de padrões!
Agora, o problema é: estudar padrões , aprender padrões, e usar padrões é dificil e complexo! Não é para qualquer um. Portanto:
- padrões é otimo.
- aprenda-os
- aprenda-os direito!
Ha certas ocasiões em que dá tristeza ver o que se escreve de padrões … frases do tipo “Fiz um façade para encapsular a chamada”
É como ver as pessoas falarem mal ou escreverem errado. Fere os ouvidos e corta o coração quando é um profissional dizendo.
O pior não as pessoas não saberem, é alguem dizer que aprender é inutil.
Bom falar que padrões são necessários por causa da austeridade da linguagem é ainda pior asneira. São padrões de OO , de design, de arquitetura , de segurança, etc… não são padrões de linguagem !! afinal o GOF era smalltalk e C++ e ainda é válido em java, C# , qq outra linguagem OO.
Que raios deu em vocês ?