Não sei se eu entendi direito esse padrão de inversão de controle, li vários artigos inclusive o do http://martinfowler.com/. Pelo que eu entendi no caso o framework e responsável por criar instâncias dos beans e injetar nos métodos respectivos dos meus outros beans, ou seja passando a referencia dos objetos para os métodos. Seria isso? ou estou errado?
Não sei se eu entendi direito esse padrão de inversão de controle, li vários artigos inclusive o do http://martinfowler.com/. Pelo que eu entendi no caso o framework e responsável por criar instâncias dos beans e injetar nos métodos respectivos dos meus outros beans, ou seja passando a referencia dos objetos para os métodos. Seria isso? ou estou errado?
Atenciosamente
Paulo Vinícius
Normalmente é o próprio objeto que cria suas dependências e tem controle sobre isto. Com a inversão de controle esta tarefa é delegada para algo externo ao próprio objeto, sendo que o próprio objeto perde o controle sobre a sua construção. Por isso o nome é inversão de controle…
Isto é uma boa prática pois desacopla o objeto de suas dependências, dando uma maior flexibilidade e aumentando a reusabilidade da classe.
P
paulofafism
Normalmente é o próprio objeto que cria suas dependências e tem controle sobre isto. Com a inversão de controle esta tarefa é delegada para algo externo ao próprio objeto, sendo que o próprio objeto perde o controle sobre a sua construção. Por isso o nome é inversão de controle...
Isto é uma boa prática pois desacopla o objeto de suas dependências, dando uma maior flexibilidade e aumentando a reusabilidade da classe.
//Então por exemplo ao invés deu fizerpublicclassEmpresa{Vendedorvendedor;publicEmpresa(){vendedor=newVendedor();}}//eu faria a Injeção de Dependencia assim deixando um objeto externo criar a depência ou seja a instância do objeto VendedorpublicclassEmpresa{Vendedorvendedor;publicEmpresa(){}publicvoidsetVendedor(Vendedorvendedor){this.vendedor=vendedor;}}
G
Guerr
Isso! A idéia básica é esta mesma!
Os frameworks de inversão de controle, como o Spring, permite que você configure estas dependências a partir de um descritor XML.
P
paulofafism
Isso! A idéia básica é esta mesma!
Os frameworks de inversão de controle, como o Spring, permite que você configure estas dependências a partir de um descritor XML.
Acho que entendi então. Andei dando uma olha no framework Spring ele faz injeção de uma forma simples e deixando o codigo mais claro para o usuário ao invés de ficar instânciando o objeto via new, no caso do spring ele instância via reflection. Acho que ja to pegando o esquema no padrão IoC. ehehheee
Obrigado pela ajuda