Junior — Middle
შეგიძლიათ ახსნათ დამოკიდებულების შეყვანის კონცეფცია და როგორ გამოიყენება იგი პროგრამული უზრუნველყოფის განვითარებაში?
sobes.tech AI
პასუხი AI-სგან
მომსახურების ინექცია (Dependency Injection, DI) — ეს დიზაინის ნიმუშია, სადაც ობიექტები იღებენ თავიანთ დამოკიდებულებებს გარედან, ნაცვლად იმისა, რომ თავად შექმნან ისინი. ეს ზრდის კოდის მოდულურობას, ტესტირებადობას და მოქნილობას.
მაგალითი: ნაცვლად იმისა, რომ კლასი თავად შექმნას ბაზის ობიექტი, ის იღებს მას კონსტრუქტორის ან სეტტერის მეშვეობით.
class Database:
def query(self):
return "მონაცემები"
class Service:
def __init__(self, db: Database):
self.db = db
def get_data(self):
return self.db.query()
# დამოკიდებულების ინექცია
database = Database()
service = Service(database)
print(service.get_data())
ეს მიდგომა ადვილად აძლიერებს დამოკიდებულებების შეცვლას (მაგალითად, ტესტებში mock-ებით) და აუმჯობესებს კოდის შენარჩუნებას.