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.