Você deve estar se perguntando pow!!! Uma versão novo do spring, nem tava sabendo, mas num é nada disso, esta aqui hoje de bobeira em casa, aproveitando feriado prolongado e pensei! Vou construir um framework, primeiro pensei, construir um concorrente do hibernate, quem sabe domino o mundo com isso! Mas só de pensar no trabalho já me cansei, não ia conseguir concluir hoje!!! Ai pensei, injeção de dependência é legal, ta na moda, os programadores não querem mais manter o forte acoplamento!! Então vamos lá, vejam como usar.
import br.com.frameork.annotations.Dependencia;
/**
*
* Computador um objeto que contem varios acoplamentos!
* porem os computadores no mundo real seus acoplamentos
* são plugaveis
*
* para injetar a dependencia em um acoplamento é somente usar
* a annotação @Dependencia
*
*/
public class Computador {
@Dependencia
private Mouse mouse;
@Dependencia
private Teclado teclado;
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public Mouse getMouse() {
return mouse;
}
public void ligar() {
System.out.println("opa! Iniciando o computador!!!");
getMouse().testar();
getTeclado().testar();
}
public void setTeclado(Teclado teclado) {
this.teclado = teclado;
}
public Teclado getTeclado() {
return teclado;
}
}
Classes dos acoplamentos
public class Mouse {
protected void testar() {
System.out.println("mouse funfando!!!");
}
}
public class Teclado {
protected void testar() {
System.out.println("teclado funfando!!!");
}
}
Agora vamos ligar o computador!!! rsrsrs
public static void main(String[] args) {
Computador computador = (Computador)Injetar.dependencias(Computador.class);
computador.ligar();
}
Saida no console: Bazinga!!! Sem NullPointException e sem acoplamento direto
opa! Iniciando o computador!!!
mouse funfando!!!
teclado funfando!!!

