Sobes.tech
Junior — Middle

Koje metode se mogu koristiti za implementaciju ubrizgavanja zavisnosti u kod?

sobes.tech АИ

Одговор од АИ

Uvođenje zavisnosti (Dependency Injection, DI) u Go može se realizovati na više načina, uzimajući u obzir osobine jezika:

  1. Kroz parametre funkcija ili konstruktora — najčešći i najjednostavniji način. Zavisnosti se eksplicitno prosleđuju prilikom kreiranja objekta ili poziva funkcije.
type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}
  1. Korišćenje interfejsa — omogućava lako zamenjivanje implementacija zavisnosti za testiranje ili proširenje.

  2. Paketi za DI — postoje biblioteke trećih strana (npr. Uber Fx, Google Wire) koje pomažu u automatizaciji injektovanja zavisnosti, ali njihova upotreba nije obavezna.

  3. Globalne promenljive ili singletoni — manje poželjan način zbog problema sa testiranjem i održavanjem.

U Go, obično se preferira eksplicitno injektovanje kroz parametre, što povećava čitljivost i jednostavnost koda.