[RESOLVIDO] Sobre Injeção de dependência

Pessoal, estudando um pouco o Spring em http://blog.flexdev.com.br/wp-content/uploads/spring/apostila-spring.pdf

li algo que gostaria da opnião de vocês:
“o uso de Registry ou Dependency Injection para implementar a relação entre duas
classes simples é um erro na maioria das vezes. Classes simples, principalmente se persistentes, devem
utilizar instanciação direta.”

está correto?

[quote=gambazinho]Pessoal, estudando um pouco o Spring em http://blog.flexdev.com.br/wp-content/uploads/spring/apostila-spring.pdf

li algo que gostaria da opnião de vocês:
“o uso de Registry ou Dependency Injection para implementar a relação entre duas
classes simples é um erro na maioria das vezes. Classes simples, principalmente se persistentes, devem
utilizar instanciação direta.”

está correto?[/quote]

Na minha opinião sim.

ex:

public class Pessoa{ private Telefone telefone = new Telefone(); }

Melhor, na maioria dos casos, do que criar uma Interface e injetá-la … PRINCIPALMENTE SE PERSISTENTE.
Eu penso que sim a afirmação está correta. Acho que o autor da apostila é também moderador aqui no GUJ. pcalcado

mas é melhor PORQUE? se o problema de dependência existe nesse exemplo que vc deu…
não entendi.

O “problema” foi solucionado com instânciação direta.

Melhor porque vocẽ não cria uma complicação a mais DESNECESSÁRIA, muito improvavelmente você vai mudar a “implementação” de telefone.

[quote=gambazinho]mas é melhor PORQUE? se o problema de dependência existe nesse exemplo que vc deu…
não entendi.[/quote]

Boa tarde,

Acho que não existe um PORQUE exato e que serve em todos os cenários que for aplicado. Acho que essa afirmação parte mais da experiência do programador.
Vejamos o exemplo que foi dado da classe “Telefone” dentro da classe “Pessoa”. Ao meu ver será muito difícil mudar a implementação dessa classe.

Agora imagine uma classe que faz acesso ao banco de dados que é chamada por uma classe da camada de negócios, onde a fonte de dados pode alterar (como substituir
uma tabela do sql por um arquivo .txt ou simplesmente trocar o sql por mysql).

Enfim, é chato criar interface para tudo como foi discutido aqui:
http://www.guj.com.br/java/234913-interfaces-para-tudo

Obrigado aos dois!
agora ficou bem mais claro… é que sou meio extremistra e quando li sobre esse problema pensei que por regra deveria ser aplicado em tudo até mesmo em classes que de fato são difíceis de sofrerem alterações.

obs: a apostila é realmente muito boa.