Inversion of Control e Dependency Injection

Pessoal,

Estou dando uma estudada em Spring e diz que para começar a estudá-lo precisa saber esses dois conceitos, alguém poderia esclarecê-los e colocar algum exemplo de codificação?

Obrigado.

Inversion of Control Containers and the Dependency Injection pattern

http://www.martinfowler.com/articles/injection.html
http://en.wikipedia.org/wiki/Inversion_of_control

Sobre o Spring IoC, eu já escrevi algo no meu blog
http://jroller.com/page/jrjunior?entry=spring_in_a_nutshell_part
e
http://jroller.com/page/jrjunior?entry=spring_in_a_nutshell_part1

Existe alguma boa explicação em português?

Conhece o Google???

Cara, existir existe, mas é sempre melhor vc se acostumar a entender inglês… um bom exemplo de IoC e AOP está no livro Spring em Ação, e português…

Estou lendo o artigo do MArlon Carvalho (http://www.imasters.com.br/artigo/4497/java/spring_framework_introducao/) e não estou conseguindo entender direito.

Primeiro ele fala que precisa conhecer os conceitos Inversion of Control (Inversão de controle) e Dependency Injection (Inclusão de dependência).

Na sequência, quando parece que vai explicar a Inversão de controle, ele diz Inversão dependência, são as mesmas coisas? Segundo ele Inversão de dependência é:
A inversão de dependência é o que torna uma simples biblioteca de classes diferente de um framework. Uma biblioteca consiste em um conjunto de classes que um usuário instancia e utiliza seus métodos. Após a chamada ao método, o controle do fluxo da aplicação retorna para o usuário. Entretanto, em um framework este fluxo é diferente. Para utilizar um framework, código próprio da aplicação deve ser criado e mantido acessível ao framework, podendo ser através de classes que estendem classes do próprio framework. O framework, então, realiza a chamada deste código da aplicação. Após a utilização do código da aplicação, o fluxo retorna para ele.

E Dependency Injection:
Finalizando, temos ainda o padrão Dependency Injection, idealizado por Martin Fowler, que trata-se de uma especialização do padrão Inversion of Control. Aplicações como Spring e PicoContainer, denominados de lightweight containers, adotam a inversão de controle, entretanto, todo framework utiliza-se de inversão de controle. A pergunta é, então, que tipo de inversão de controle o Spring, por exemplo, realiza? Afirmar que o Spring é um bom framework porque aplica a inversão de controle é um erro, já que qualquer framework deve aplicar este padrão.

Alguém poderia simplificar essa explicação?

Prototipo de apostila

[quote=vinucho]…
Na sequência, quando parece que vai explicar a Inversão de controle, ele diz Inversão dependência, são as mesmas coisas?

[/quote]

Fala aí brother, blz? Olha os termos corretos são: Inversão de Controle e Injeção de Dependência. Sendo a Inversão de Controle um forma mais geral e mais abrangente de se chamar essa técnica de, digamos, desacoplamento. Já Injeção de Dependência é o nome que Martin Fowler e seus colegas de trabalho na ThoughtWorks deram ao que é usado neste ‘containers leves’ como Spring e Pico Container.

Creio que este artigo pode tirar um pouco de suas dúvidas.

A Paz!