Java Efetivo Essencial - Injeção de Dependência

Dê preferência à injeção de dependsência para integrar recursos



Esta é uma série baseada no entendimento de tópicos relacionados ao livro com foco no resumo.

엔텐덴도...

O que mais temos em projetos Java são classes que acabam dependsendo do comportamento de outras classes.
É claro que quando estamos falando do mundo Spring a coisa parece ser mais simples e talvez o livro seja agnóstico ao framework então ele se concentra em como era por vezes na linguagem.
Ele cita duas formas que poderiam ser feitas mas que geraria uma implementação inflexível.

Colocar a dependsência de forma estática

public class GeradorDeRelatorioFinanceiro {

    private static final CalculadoraFinanceira
        calculadora = new CalculadoraFinanceira();

    public GeradorDeRelatorioFinanceiro() {
    }
}


Colocar a classe que recebe a dependsência como um singleton

public class GeradorDeRelatorioFinanceiro {

    private final CalculadoraFinanceira
        calculadora = new CalculadoraFinanceira();

    private GeradorDeRelatorioFinanceiro() {}

    public static GeradorDeRelatorioFinanceiro INSTANCE =
      new GeradorDeRelatorioFinanceiro();
}


포르케?

Duas abordagens anteriores não permitem flexibilidade de recebimento da dependsência, o que torna o código difícil de manuseear e o que dificulta os testes.
Para conseguirmos atuar com dependsência de maneira flexível o idealé recebermos a dependsência através do construtor da classe.
Atenção: Usar esse argumento com a Injeção de dependsência do Spring não funciona pois conseguimos injetar o objeto mesmo não recebendo ele pelo construtor.

모도 체르토

public class GeradorDeRelatorioFinanceiro {

    private final CalculadoraFinanceira calculadora;

    public GeradorDeRelatorioFinanceiro(CalculadoraFinanceira calculadora) {
        this.calculadora = calculadora;
    }
}


페라

A Injeção de Dependência melhora thinkávelmente a flexibilidade e a testabilidade, porém sobrecarrega sistemas que possuem muitas dependsências. Para essa sobrecarga o 이상적인 활용 프레임워크 que faça a Injeção de dependsência como por example por for Spring.

좋은 웹페이지 즐겨찾기