| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/03/2007 13:40:44
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Porque usar IOC ? qual o motivo de não ficar dando new ou criar factory para um projeto ? Que vantagens você tem quando usa o IOC ???
Obrigado,
[]'s
Alberto
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/03/2007 16:03:58
|
ASOBrasil
JavaEvangelist
![[Avatar]](/images/avatar/ac3870fcad1cfc367825cda0101eee62.jpg)
Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline
|
Artigos antigos, mas válidos:
http://www.martinfowler.com/articles/injection.html
http://www.theserverside.com/tt/articles/article.tss?l=IOCandEJB
Tutorial no guj sobre IOC
http://www.guj.com.br/java.tutorial.artigo.155.1.guj
ASOBrasil
|
Java Examples || Useful links for web developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2007 04:43:31
|
Giuliano Mega
JavaBaby
Membro desde: 22/08/2005 19:01:35
Mensagens: 94
Offline
|
Alberto,
A idéia é conseguir o desacoplamento entre cliente e produto que a factory te dá, mas sem ter que inventar milhares de fábricas ou uma fábrica enorme com uma interface toda inchada.
Bem, na verdade a injeção de dependências vai um pouco mais longe - você não fica nem sequer acoplado à interface da fábrica. Isso é particularmente relevante em sistemas flexíveis, onde normalmente você quer limitar o acoplamento o máximo possível.
Além disso, é compatível com a idéia de que a implementação concreta deve ser mais um dado de configuração do que qualquer outra coisa.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2007 16:59:45
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Giuliano Mega wrote:Alberto,
A idéia é conseguir o desacoplamento entre cliente e produto que a factory te dá, mas sem ter que inventar milhares de fábricas ou uma fábrica enorme com uma interface toda inchada.
Bem, na verdade a injeção de dependências vai um pouco mais longe - você não fica nem sequer acoplado à interface da fábrica. Isso é particularmente relevante em sistemas flexíveis, onde normalmente você quer limitar o acoplamento o máximo possível.
Além disso, é compatível com a idéia de que a implementação concreta deve ser mais um dado de configuração do que qualquer outra coisa.
Bom dia Giuliano Mega, aproveitando a discussão fiz um teste e queria saber se está correto dizer que estou invertendo o controle neste exemplo:
Pensei tb em outro jeito será que é mais certo ?
desde já agradeço.
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2007 04:12:34
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 79
Offline
|
Primeiro, suponho que você esteja se referindo a uma forma específica de IoC chamada de Injeção de Dependência.
alberto_ribeiro wrote:
Exatamente! Porém, o trabalho de
e
será feito pelo teu Vanilla DI Container.
alberto_ribeiro wrote:
Pensei tb em outro jeito será que é mais certo ?
desde já agradeço.
Hey, onde está a DI neste caso?
|
**** Demaaaaaaais ****
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2007 15:28:11
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
no post abaixo...
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2007 15:28:58
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
TheMask wrote:Primeiro, suponho que você esteja se referindo a uma forma específica de IoC chamada de Injeção de Dependência.
alberto_ribeiro wrote:
Exatamente! Porém, o trabalho de
e
será feito pelo teu Vanilla DI Container.
alberto_ribeiro wrote:
Pensei tb em outro jeito será que é mais certo ?
desde já agradeço.
Hey, onde está a DI neste caso?
Bom DIA TheMask, cara muito obrigado, vou dar uma lida no Vanilla, obrigado por analisar meu código...
e quanto ao segundo exemplo eu coloquei o new B() no construtor de A, não sabia se estava certo, neste segundo caso acho eu que fica fortemente acoplada, se eu mudar o jeito de instanciar o B vou ter que alterar minha classe A certo ???
[]'s e muito Obrigado mesmo...
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2007 17:10:28
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 79
Offline
|
Boa páscoa Alberto,
o vanilla foi apenas eu tentando brincar com o meu péssimo inglês. Ok, eu sei que o cv vai me zoar.
Nos links daquelas palavras, aparecem 4 frameworks de DI. Veja-os.
alberto_ribeiro wrote:
...
e quanto ao segundo exemplo eu coloquei o new B() no construtor de A, não sabia se estava certo, neste segundo caso acho eu que fica fortemente acoplada, se eu mudar o jeito de instanciar o B vou ter que alterar minha classe A certo ???
[]'s e muito Obrigado mesmo...
Não é uma questão de certo/errado. Você apenas não usou injeção de dependências ali.
E não é bem o jeito de instanciar B, mas principalmente se você precisar trocar B por C que extende B. Ou melhor, por C que implementa D assim como B também o faz. (Re)leia o primeiro artigo recomendado pelo ASOBrasil para uma explicação melhor.
Abs.
|
**** Demaaaaaaais ****
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2007 17:30:32
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
alberto_ribeiro wrote:Bom DIA TheMask, cara muito obrigado, vou dar uma lida no Vanilla, obrigado por analisar meu código...
Er... "vanilla" nao eh um framework especifico. Eh qualquer framework de DI (picocontainer, spring, guice, hivemind, etc). Repare nos links no post do TheMask.
alberto_ribeiro wrote:e quanto ao segundo exemplo eu coloquei o new B() no construtor de A, não sabia se estava certo, neste segundo caso acho eu que fica fortemente acoplada, se eu mudar o jeito de instanciar o B vou ter que alterar minha classe A certo ???
Pense que vc quer instanciar A passando outra implementacao de B pra ele. Sim, vc vai ter que alterar A pra permitir isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2007 18:43:23
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Opa obrigado CV, eu coloquei como se fosse um framework porque não tinha lido até o momento que respondi ao theMask...
E boa Páscoa para theMask e Cv...
obrigado pela resposta...
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
|
|