Junior — Middle
შეგიძლიათ ახსნათ უკუღმართ დამოკიდებულების კონცეფცია და მისი როლი სისტემების დიზაინში?
sobes.tech AI
პასუხი AI-სგან
კონტროლის გადაბრუნება (IoC) — ეს არის დიზაინის პრინციპი, რომლის დროსაც სისტემის კომპონენტებს შორის დამოკიდებულებების მართვა გადაეცემა გარეგან კონტეინერს ან ჩარჩოს, ხოლო არა პირდაპირ კომპონენტების შიგნით შექმნილი.
სისტემის დიზაინში როლი:
- ზრდის მოდულარობას და ტესტირებადობას, რადგან კომპონენტები არ არიან დამოკიდებული კონკრეტულ რეალიზაციებზე, არამედ იღებენ მათ გარედან.
- ადვილად იცვლება და გაფართოვდება კომპონენტები, ისე რომ არ შეიცვალოს კოდი, რომელიც მათ იყენებს.
მაგალითი: ნაცვლად იმისა, რომ კლასი თავად შექმნას დამოკიდებულების ობიექტი, ის იღებს მას კონსტრუქტორით ან სეტტერით. ეს საშუალებას აძლევს მარტივად შეცვალოს რეალიზაციები, მაგალითად, ტესტებისთვის.
protocol Service {
func doWork()
}
class RealService: Service {
func doWork() { print("სამუშაო დასრულდა") }
}
class Client {
let service: Service
init(service: Service) {
self.service = service
}
}
let service = RealService()
let client = Client(service: service)
აქ, Client-ი თვითონ არ ქმნის RealService-ს, არამედ იღებს მას გარედან — ეს არის დამოკიდებულების გადაბრუნება.