Junior — Middle
Obyekt yönümlü proqramlaşdırmada asılılıqların tərs prinsipi nədir izah edə bilərsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Asılılıqların Tərs Çevrilməsi Prinsipi (Dependency Inversion Principle, DIP) obyekt yönümlü proqramlaşdırmadakı SOLID beş prinsipindən biridir. Bu prinsip deyir:
- Yüksək səviyyəli modullar aşağı səviyyəli modullardan asılı olmamalıdır. Hər ikisi abstraksiyalara asılı olmalıdır.
- Abstraksiyalar detallara asılı olmamalıdır. Detallar abstraksiyalara asılı olmalıdır.
Bu, bir sinfin digər sinflərin konkret tətbiqlərini birbaşa yaratması və ya istifadə etməsi yerinə, onun abstraksiyalar (məsələn, interfeys və ya protokol) ilə işləməsi deməkdir. Bu, elastikliyi artırır və test etməyi asanlaşdırır.
Swift (iOS) nümunəsi:
protocol DataService {
func fetchData() -> String
}
class APIService: DataService {
func fetchData() -> String {
return "API-dən məlumatlar"
}
}
class ViewModel {
private let service: DataService
init(service: DataService) {
self.service = service
}
func load() {
print(service.fetchData())
}
}
let apiService = APIService()
let viewModel = ViewModel(service: apiService)
viewModel.load() // Çıxış: API-dən məlumatlar
Burada, ViewModel DataService abstraksiyasına bağlıdır və APIService-ə deyil. Bu, xidmətin tətbiqini asanlıqla dəyişdirməyə imkan verir, məsələn, testlər üçün mock ilə.