Sobes.tech
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:

  1. 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}
}
  1. Uso de interfaces — permite substituir facilmente as implementações de dependências para testes ou extensões.

  2. 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.

  3. 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.