Sobes.tech
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ə.