Junior — Middle
Կարող եք բացատրել, թե ինչ է կախվածությունների ներդրման գաղափարը ծրագրային դիզայնում?
sobes.tech AI
Պատասխան AI-ից
Անհրաժեշտությունների մուտքագրման (Dependency Injection, DI) գաղափարը կայանում է նրանում, որ օբյեկտների կախվածությունները ստեղծելու և կառավարելու գործընթացը առանձնացվի դրանց օգտագործումից։ Փոխարենը, որ դասը ինքն իր կախվածությունները ստեղծի կամ որոնի, դրանք տրամադրվում են նրա կողմից դուրսից։
Այս մոտեցումը բարձրացնում է մոդուլայնությունը, հեշտացնում է փորձարկումները (կարող եք օգտագործել մոկ օբյեկտներ) և պարզեցնում է կոդի սպասարկումը։
Օրինակ՝ փոխարենը, որ դասի ներսում ստեղծվի ծառայության օբյեկտ,
class UserService {
private UserRepository repo = new UserRepository(); // խիստ կախվածություն
}
մենք փոխանցում ենք կախվածությունը կոնստրուկտորով՝
class UserService {
private UserRepository repo;
public UserService(UserRepository repo) {
this.repo = repo;
}
}
Հիմա, UserService-ը պատասխանատու չէ UserRepository-ի ստեղծման համար, այլ այն ստանում է դուրսից, ինչը թույլ է տալիս հեշտությամբ փոխել իրականացմանը և փորձարկել դասը։