Junior — Middle
¿Puede explicar qué se entiende por el principio de inversión de dependencias en la programación orientada a objetos?
sobes.tech AI
Respuesta de la IA
El principio de inversión de dependencias (Dependency Inversion Principle, DIP) es uno de los cinco principios SOLID en programación orientada a objetos. Establece:
- Los módulos de alto nivel no deben depender de los módulos de bajo nivel. Ambos deben depender de abstracciones.
- Las abstracciones no deben depender de los detalles. Los detalles deben depender de las abstracciones.
Esto significa que, en lugar de que una clase cree o utilice directamente implementaciones concretas de otras clases, debe trabajar con abstracciones (por ejemplo, interfaces o protocolos). Esto aumenta la flexibilidad y facilita las pruebas.
Ejemplo en Swift (iOS):
protocol DataService {
func fetchData() -> String
}
class APIService: DataService {
func fetchData() -> String {
return "Datos de la API"
}
}
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() // Imprimirá: Datos de la API
Aquí, ViewModel depende de la abstracción DataService, y no de la implementación concreta APIService. Esto permite reemplazar fácilmente la implementación del servicio, por ejemplo, con un mock para pruebas.