Sobes.tech
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-ებით) და აუმჯობესებს კოდის შენარჩუნებას.