Sobes.tech
Junior — Middle

Ce metode pot fi utilizate pentru a implementa injecția de dependențe în cod?

sobes.tech AI

Răspuns de la AI

Injecția de dependințe (Dependency Injection, DI) în Go poate fi implementată în mai multe moduri, ținând cont de caracteristicile limbajului:

  1. Prin parametri ai funcțiilor sau constructorilor — cel mai comun și simplu mod. Dependințele sunt transmise explicit la crearea unui obiect sau la apelarea unei funcții.
type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}
  1. Utilizarea interfețelor — permite înlocuirea ușoară a implementărilor dependințelor pentru testare sau extindere.

  2. Pachete pentru DI — există biblioteci terțe (de exemplu, Uber Fx, Google Wire) care ajută la automatizarea injecției de dependințe, dar utilizarea lor nu este obligatorie.

  3. Variabile globale sau singleton-uri — metodă mai puțin preferată din cauza problemelor de testabilitate și întreținere.

În Go, de obicei, se preferă injecția explicită prin parametri, deoarece crește lizibilitatea și simplitatea codului.