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:
- 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}
}
-
Použití rozhraní — umožňuje snadno nahradit implementace závislostí pro testování nebo rozšíření.
-
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é.
-
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.