Sobes.tech
Junior — Middle

Jakými metodami lze implementovat zavádění závislostí do kódu?

sobes.tech AI

Odpověď od AI

Vstřikování závislostí (Dependency Injection, DI) v jazyce Go lze realizovat několika způsoby, s přihlédnutím k vlastnostem jazyka:

  1. Pomocí parametrů funkcí nebo konstruktorů — nejběžnější a nejjednodušší způsob. Závislosti jsou předávány explicitně při vytváření objektu nebo volání funkce.
type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}
  1. Použití rozhraní — umožňuje snadno nahradit implementace závislostí pro testování nebo rozšíření.

  2. Balíčky pro DI — existují knihovny třetích stran (například Uber Fx, Google Wire), které pomáhají s automatizací vkládání závislostí, ale jejich použití není povinné.

  3. Globální proměnné nebo singletony — méně preferovaný způsob kvůli problémům s testovatelností a údržbou.

V Go se obvykle upřednostňuje explicitní vkládání přes parametry, což zvyšuje čitelnost a jednoduchost kódu.