..


Links Patrocinados

IoC e DI (Inversão de Controle e Injeção de Dependência)

Inversão 'S de Controle (IoC) é uma característica típica do quadro, que se move o controle de fluxo pelo aplicativo para o quadro em si.

Vamos dar um exemplo para esclarecer o conceito: se você criar uma GUI API através de balanço , o programador só precisa implementar os manipuladores de eventos disparados pelo usuário, como pressionar um botão ou digitar o texto. Quadro é deixado para controlar o fluxo da aplicação, tais como o fechamento e janelas de abertura.

Este tipo de comportamento é chamado de IoC porque o controle é movido pelo desenvolvedor do framework.

Uma vez que está claro o que o COI, vemos como ele é usado na Primavera.
Todas as aplicações são compostas de objetos que atingir a meta pré-determinada devem cooperar uns com os outros e, inevitavelmente, são formados de dependência. Normalmente estas dependências são resolvidas por um código que é adequado para a configuração (normalmente o fabricante). Suponha que nós temos que implementar uma classe para gerenciar uma loja de vídeo:






 pacote it.mrwebmaster;









 import java.util.ArrayList;







 java.util.List de importação;









 {Public class VideoManager





  



 DvdService DvdService privado;





  



 VideoManager pública () {



    



 super ();



    



 / **



     



 * Configuração e resolução de dependência



     



 * /



    



 this.dvdService DvdServiceImpl = new ();



  



 }





  



 <Dvd> Lista getAvalaibleDvdList pública () {



    



 / **



     



 * Recuperar a lista de DVD



     



 * /



    



 Lista <Dvd> dvdList dvdService.getDvdList = ();





    



 / **



     



 * Percorrer a lista de DVDs para encontrar

 

     



 * Aqueles disponíveis



     



 * /



    



 Lista = new ArrayList <Dvd> <Dvd> availabeDvdList ();





    



 for (DVD DVD: dvdList) {



      



 if (dvd.isDisponibile ()) {



        



 availabeDvdList.add (DVD);



      



 }



    



 }





    



 retorno availabeDvdList;



  



 }

	





 }



Neste exemplo, o VideoManager classe tem a tarefa de recuperar a lista de não-alugados DVD. A lista é recuperado usando um serviço (DvdService) que recupera uma lista de todos os DVDs, e andar de bicicleta na lista são os DVD disponíveis. O VideoManager classe, portanto, tem uma dependência do DvdService objeto, que é resolvido no construtor.

Diagramma Dipendenze

Se não tivéssemos usado Primavera deveríamos ter que se preocupar sobre como resolver o VideoManager dipendeza no construtor da classe, já que a dependência seria resolvido até à Primavera.
Na primavera, então, o COI é usada para inverter o controle sobre as dependências de configuração. Por esta razão, foi cunhado por Martin Fowler, em seu famoso artigo , o prazo ser dependente Injection (DI), que às vezes é usado incorretamente como sinônimo id IoC.
O conceito básico de DI é ter um objeto separado para fazer a resolução de dependências e de inicialização.

A classe assembler seguinte, tem a tarefa de inicializar o DvdService classe:

Diagramma Assembler

Existem três tipos de injeção de ser dependente:

  • Injeção de interface
  • Injeção Setter
  • Injeção de construtor
Na Primavera, como veremos adiante, são implementados apenas Constructor Injection e Setter, mas também é possível inicializar e criar objetos através da Fábrica de Objetos e Factory Method.

Primavera Java Guia
E-Learning
Linux (Curso) Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €.
PHP (Curso) PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €.
Ruby e Ruby on Rails (Curso) Ruby e Ruby on Rails (Curso)
Criar aplicações de software e Web com Ruby e RoR. A partir de 39 €.
Links Patrocinados