Sobes.tech
Junior — Middle

¿Puede explicar el concepto de dependencia inversa y su papel en el diseño de sistemas?

sobes.tech AI

Respuesta de la IA

La inversión de control (IoC) es un principio de diseño en el que la gestión de las dependencias entre componentes del sistema se transfiere a un contenedor o marco externo, en lugar de crearse directamente dentro de los componentes.

Rol en el diseño de sistemas:

  • Mejora la modularidad y la capacidad de prueba, ya que los componentes no dependen de implementaciones específicas, sino que las reciben desde fuera.
  • Facilita la sustitución y expansión de componentes sin modificar el código que los utiliza.

Ejemplo: en lugar de que la clase cree ella misma el objeto de dependencia, lo recibe a través del constructor o un método setter. Esto permite cambiar fácilmente las implementaciones, por ejemplo, para pruebas.

protocol Service {
    func doWork()
}

class RealService: Service {
    func doWork() { print("Trabajo realizado") }
}

class Client {
    let service: Service
    init(service: Service) {
        self.service = service
    }
}

let service = RealService()
let client = Client(service: service)

Aquí, Client no crea el RealService por sí mismo, sino que lo recibe desde fuera — esto es inversión de dependencia.