Junior — Middle
Ինչ մեթոդներ կարելի է օգտագործել կախվածությունների ներդրմանը կոդում?
sobes.tech AI
Պատասխան AI-ից
Go-ում կախվածությունների մուտքագրումը (Dependency Injection, DI) կարող է իրականացվել մի քանի եղանակով՝ հաշվի առնելով լեզվի առանձնահատկությունները:
- Ֆունկցիաների կամ կոնստրուկտորների պարամետրերով — ամենատարածված և պարզ եղանակը։ Կախվածությունները հստակ փոխանցվում են օբյեկտի ստեղծման կամ ֆունկցիայի կանչի ժամանակ։
type Service struct {
repo Repository
}
func NewService(r Repository) *Service {
return &Service{repo: r}
}
-
Ինտերֆեյսների օգտագործմամբ — թույլ է տալիս հեշտությամբ փոխարինել կախվածությունների իրականացմանը՝ թեստավորման կամ ընդլայնման համար։
-
DI համար գրադարաններ — կան երրորդ կողմի գրադարաններ (օրինակ, Uber Fx, Google Wire), որոնք օգնում են ավտոմատացնել կախվածությունների մուտքագրումը, սակայն դրանց օգտագործումը պարտադիր չէ։
-
Գլոբալ փոփոխականներ կամ singleton-ներ — պակաս նախընտրելի մեթոդ՝ կապված թեստավորման և սպասարկման խնդիրների հետ։
Go-ում սովորաբար նախընտրում են հստակ մուտքագրումը՝ որպես պարամետրեր, ինչը բարելավում է կոդի ընթեռնելիությունը և պարզությունը։