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:
- 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}
}
-
Użycie interfejsów — umożliwia łatwą wymianę implementacji zależności do celów testowania lub rozszerzania.
-
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.
-
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.