..
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.

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:

Existem três tipos de injeção de ser dependente:
| |
Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €. |
| |
PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €. |
| |
Ruby e Ruby on Rails (Curso)
Criar aplicações de software e Web com Ruby e RoR. A partir de 39 €. |