Sobes.tech
Junior — Middle

Jakie metody można zastosować do implementacji wstrzykiwania zależności w kodzie?

sobes.tech AI

Odpowiedź od AI

Wstrzykiwanie zależności (Dependency Injection, DI) w Go można realizować na kilka sposobów, biorąc pod uwagę cechy języka:

  1. Przez parametry funkcji lub konstruktorów — najpowszechniejszy i najprostszy sposób. Zależności są przekazywane jawnie podczas tworzenia obiektu lub wywoływania funkcji.
type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}
  1. Użycie interfejsów — umożliwia łatwą wymianę implementacji zależności do celów testowania lub rozszerzania.

  2. Pakiety do DI — istnieją biblioteki zewnętrzne (np. Uber Fx, Google Wire), które pomagają zautomatyzować wstrzykiwanie zależności, choć ich użycie nie jest obowiązkowe.

  3. Zmienne globalne lub singletony — metoda mniej preferowana ze względu na problemy z testowalnością i utrzymaniem.

W Go zazwyczaj preferuje się jawne wstrzykiwanie przez parametry, co zwiększa czytelność i prostotę kodu.