Sobes.tech
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:

  1. 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}
}
  1. İ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.

  2. 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.

  3. 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.