Junior — Middle
Kodda asılılıqların injeksiyasını həyata keçirmək üçün hansı metodlar istifadə oluna bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da asılılıqları injeksiya etmək (Dependency Injection, DI) müxtəlif üsullarla həyata keçirilə bilər, dilin xüsusiyyətlərini nəzərə alaraq:
- Funksiya və ya konstruktor parametrləri vasitəsilə — ən yaygın və sadə üsul. Asılılıqlar obyekt yaradılarkən və ya funksiya çağırılarkən açıq şəkildə ötürülür.
type Service struct {
repo Repository
}
func NewService(r Repository) *Service {
return &Service{repo: r}
}
-
İnterfeyslərdən istifadə — asılılıqların tətbiqlərini test və ya genişləndirmə üçün asanlıqla dəyişdirməyə imkan verir.
-
DI üçün paketlər — üçüncü tərəf kitabxanalar (məsələn, Uber Fx, Google Wire) asılılıq injeksiyasını avtomatlaşdırmağa kömək edir, lakin onların istifadəsi məcburi deyil.
-
Qlobal dəyişənlər və ya singletonlar — test ediləbilənlik və dəstək problemləri səbəbindən daha az üstünlük verilən üsul.
Go-da ümumiyyətlə, kodun oxunaqlığını və sadəliyini artırdığı üçün, parametrlər vasitəsilə açıq injeksiya üstün tutulur.