| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 14:23:04
|
nadilsons
JavaTeenager
![[Avatar]](/images/avatar/0676f43ba89ef089f43c6f36ca40fa4a.png)
Membro desde: 25/09/2006 23:10:20
Mensagens: 179
Offline
|
Bom dia,
Alguém poderia dizer qual a diferenca entre "Injeção de dependência" e "Inversão de controle".
Olhando o conceito de ambos... parecem q sao sinonimos... mas acredito q nao sao...
Obrigado
|
Jesus é o caminho, a verdade e a vida! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 14:26:55
|
marcelomartins
Moderador
![[Avatar]](/images/avatar/777669af68dbccabc30c3b6bcaa81825.jpg)
Membro desde: 07/01/2004 10:53:19
Mensagens: 1272
Localização: Porto Alegre - RS
Offline
|
A bastante tempo atrás já foi discutido isso aqui no guj.
Na prática não tem diferença nenhuma, mas me lembro que teoricamente algumas pessoas apontaram diferenças.
|
Marcelo Martins
--
Tudo que hoje eu realmente preciso saber, aprendi no jardim da infancia.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 14:34:51
|
Alexandre Gazola
JavaChild
Membro desde: 23/07/2004 14:48:23
Mensagens: 100
Offline
|
Realmente, cada um tem sua opinião sobre o assunto. Isso envolve três conceitos: inversão de dependência, inversão de controle e injeção de dependência. Na minha opinião é o seguinte:
Inversão de dependência e inversão de controle são princípios de projeto de software orientado a objetos e injeção de dependência é uma técnica para especificar classes concretas de maneira flexível.
Inversão de Dependência: é um termo geral para designar que tanto componentes de alto nível quanto componentes de baixo nível dependem de abstrações. Esse princípio estimula o uso de abstrações em vez de classes concretas. Exemplos de padrões que possibilitam isso: factories.
Inversão de Controle: também chamado de princípio de hollywood, ou seja, "não nos chame, nós chamamos vc". Exemplo de padrão: template method
Injeção de dependência: é uma técnica utilizada para instanciar classes concretas, sem se manter acoplado a elas. Projetos que usam inversão de dependência e inversão de controle são fáceis de se beneficiar de containeres de injeção de dependência.
Bem, acho q é isso. Se eu estiver errado, por favor me corrijam.
|
Alexandre Gazola
SCJP, SCWCD
"Que proveito tem o homem ganhar o mundo inteiro e perder a sua alma?" (Mc. 8:36)
"Buscai, em primeiro lugar, o Reino de Deus e a sua justiça, e todas essas coisas vos serão dadas por acréscimo" (Mt. 6:33) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 16:20:27
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 333
Localização: São Paulo
Offline
|
Versão resumida do post anterior:
Inversão de controle é estratégia, injeção de dependência é tática.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 17:09:46
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5053
Localização: Melbourne - Australia
Offline
|
Injeção de Dependências é uma formad e Inversão de Controle.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/04/2007 18:43:59
|
carneiro
JavaEvangelist
![[Avatar]](/images/avatar/18b91b19f6a289e7708da7f778b2c609.jpg)
Membro desde: 07/04/2005 11:37:42
Mensagens: 310
Offline
|
E quais são outras formas de inversão de controle?
|
Davi Luan Carneiro
Desenvolvedor JEE |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 02:11:07
|
David
JavaEvangelist
![[Avatar]](/images/avatar/77431ca7981f1f1483ae8a58bcbb6e0e.jpg)
Membro desde: 18/03/2005 13:10:33
Mensagens: 432
Localização: Natal/RN
Offline
|
carneiro wrote:E quais são outras formas de inversão de controle?
Dependency lookup. Exemplo: Registry (JNDI), Factory...
|
David Pereira
Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 03:40:18
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7757
Localização: London, UK
Offline
|
David wrote:
carneiro wrote:E quais são outras formas de inversão de controle?
Dependency lookup. Exemplo: Registry (JNDI), Factory...
De onde saiu que lookup eh inversao de controle? Se A precisa de B e A vai buscar B, nao eh exatamente invertido
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 07:24:35
|
ZehOliveira
Virtual Machine Man
![[Avatar]](/images/avatar/c2ba1bc54b239208cb37b901c0d3b363.jpg)
Membro desde: 12/12/2003 22:13:49
Mensagens: 963
Localização: Maceio-AL
Offline
|
cv wrote:De onde saiu que lookup eh inversao de controle? Se A precisa de B e A vai buscar B, nao eh exatamente invertido 
Foi o que eu pensei (mas fiquei quieto... vai que sou eu que estou meio por fora do assunto!).
Aliás, todo o auê em cima de IoC e DI surgiu por que ninguem aguentava mais fazer lookups, principalmente quando se trabalhava com as versão antigas de EJB. (< 3.0).
|
joseoliveira.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 16:05:25
|
alberto_ribeiro
JavaGuru
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 256
Localização: Embu Guaçu
Offline
|
...
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 16:31:11
|
David
JavaEvangelist
![[Avatar]](/images/avatar/77431ca7981f1f1483ae8a58bcbb6e0e.jpg)
Membro desde: 18/03/2005 13:10:33
Mensagens: 432
Localização: Natal/RN
Offline
|
cv wrote:De onde saiu que lookup eh inversao de controle? Se A precisa de B e A vai buscar B, nao eh exatamente invertido 
Imaginei isso porque A não instancia B, C instancia B para A. Já que eu estava errado, quais seriam as outras formas de inversão de controle?
|
David Pereira
Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 16:39:00
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3384
Localização: João Pessoa, Paraíba - Brasil
Offline
|
cv wrote:
David wrote:
carneiro wrote:E quais são outras formas de inversão de controle?
Dependency lookup. Exemplo: Registry (JNDI), Factory...
De onde saiu que lookup eh inversao de controle? Se A precisa de B e A vai buscar B, nao eh exatamente invertido 
Ora, a injeção de dependências é simplesmente uma automatização da ida ao registro pra pegar o objeto. A inversão de controle não interessa como eu peguei, o importante é eu não criar o objeto diretamente.
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 17:16:11
|
Giuliano Mega
JavaBaby
Membro desde: 22/08/2005 19:01:35
Mensagens: 94
Offline
|
Inversao de controle = principio de Hollywood = "don't call us, we'll call you".
Trata-se de uma caracteristica comum a diversos frameworks, vc coloca o componente la e o framework se encarrega de chama-lo (o principio eh compativel com a ideia de reuso de interacoes presentes nos frameworks - alias, eh peca necessaria).
Conforme disse o Philip, injecao de Dependencias usa Inversao de Controle. Concordo que eh confuso, especialmente porque um batalhao de gente usa o termo "inversao de controle" como referencia a "injecao de dependencias".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 21:35:27
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 76
Offline
|
Martin Fowler wrote:When I first ran into inversion of control, it was in the main control of a user interface. Early user interfaces were controlled by the application program. You would have a sequence of commands like "Enter name", "enter address"; your program would drive the prompts and pick up a response to each one. With graphical (or even screen based) UIs the UI framework would contain this main loop and your program instead provided event handlers for the various fields on the screen. The main control of the program was inverted, moved away from you to the framework.
Mais aqui e aqui. Atenção para o quote do Ralph GoF Johnson e do Brian Foote.
|
**** Demaaaaaaais ****
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 21:49:15
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 76
Offline
|
Maurício Linhares wrote:A inversão de controle não interessa como eu peguei, o importante é eu não criar o objeto diretamente.
Interessa sim. Interessa saber que você não tem uma referência para o Locator. Se tiver, não é DI.
|
**** Demaaaaaaais ****
 |
|
|
 |
|
|