Junior — Middle
Quais métodos podem ser usados para implementar a injeção de dependências no código?
sobes.tech IA
Resposta da IA
A injeção de dependências (Dependency Injection, DI) em Go pode ser implementada de várias formas, considerando as características da linguagem:
- Através de parâmetros de funções ou construtores — a forma mais comum e simples. As dependências são passadas explicitamente ao criar um objeto ou ao chamar uma função.
type Service struct {
repo Repository
}
func NewService(r Repository) *Service {
return &Service{repo: r}
}
-
Uso de interfaces — permite substituir facilmente as implementações de dependências para testes ou extensões.
-
Pacotes para DI — existem bibliotecas de terceiros (por exemplo, Uber Fx, Google Wire) que ajudam a automatizar a injeção de dependências, embora seu uso não seja obrigatório.
-
Variáveis globais ou singletons — método menos preferido devido a problemas com testabilidade e manutenção.
Em Go, geralmente se prefere a injeção explícita através de parâmetros, o que aumenta a legibilidade e a simplicidade do código.