Sobes.tech
Junior — Middle

Nesne yönelimli programlamada bağımlılıkların tersine çevrilmesi prensibi nedir açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bağımlılıkların Tersine Çevirme Prensibi (Dependency Inversion Principle, DIP), Nesne Yönelimli Programlamada SOLID ilkelerinden biridir. Şunu söyler:

  • Yüksek seviyeli modüller, düşük seviyeli modüllere bağlı olmamalıdır. Her ikisi de soyutlamalara bağlı olmalıdır.
  • Soyutlamalar, detaylara bağlı olmamalıdır. Detaylar, soyutlamalara bağlı olmalıdır.

Bu, bir sınıfın doğrudan diğer sınıfların somut uygulamalarını oluşturması veya kullanması yerine, soyutlamalar (örneğin, arayüzler veya protokoller) ile çalışması gerektiği anlamına gelir. Bu, esnekliği artırır ve testi kolaylaştırır.

Swift (iOS) örneği:

protocol DataService {
    func fetchData() -> String
}

class APIService: DataService {
    func fetchData() -> String {
        return "API'den Veriler"
    }
}

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()  // Çıktı: API'den Veriler

Burada, ViewModel, DataService soyutlamasına bağlıdır, APIService'e değil. Bu, hizmet uygulamasını kolayca değiştirmeyi sağlar, örneğin testler için bir mock ile.