Sobes.tech
Junior — Middle

Quais são as vantagens e desvantagens de usar um construtor ao implementar dependências no código?

sobes.tech IA

Resposta da IA

Vantagens do construtor na implementação de dependências:

  • Declaração explícita de dependências — todos os objetos necessários são passados através dos parâmetros do construtor, o que melhora a legibilidade e a testabilidade.
  • Garantia de imutabilidade — as dependências podem ser tornadas finais, aumentando a fiabilidade.
  • Simplificação dos testes — é fácil substituir objetos mock nos testes unitários.

Desvantagens:

  • Quando há muitas dependências, o construtor pode tornar-se pesado.
  • Nem sempre é conveniente se as dependências forem opcionais ou precisarem ser criadas de forma preguiçosa.

Exemplo:

public class Service {
    private final Repository repository;

    public Service(Repository repository) {
        this.repository = repository;
    }

    public void doWork() {
        repository.saveData();
    }
}

Assim, o construtor garante uma injeção de dependências explícita e fiável, promovendo uma arquitetura limpa.