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.