¿Qué es la inyección de dependencia en Swift?

La inyección de dependencia es un término aterrador para un concepto muy simple. Existe una gran posibilidad de que ya haya utilizado la inyección de dependencia de manera rápida sin darse cuenta. La inyección de dependencias no es más que inyectar dependencias en un objeto en lugar de asignar al objeto la responsabilidad de crear sus dependencias. le da a un objeto sus variables de instancia en lugar de crearlas en el objeto.

Veamos con un ejemplo de inyección de dependencia, espero que aclare el concepto detrás de esto.

definimos una subclase UIViewController que declara una propiedad, serviceManager , de tipo ServiceManager? .

importar UIKit
clase ViewController: UIViewController {
var serviceManager: ServiceManager?
}

En la segunda opción, inyectamos la instancia de ServiceManager en la instancia de ViewController . Aunque el resultado final puede parecer idéntico, no lo es. Al inyectar el administrador de servicios, el controlador de vista no sabe cómo crear una instancia del administrador de servicios.

// Inicializar el controlador de vista
let viewController = ViewController ()
// Configurar el controlador de vista
viewController.serviceManager = ServiceManager ()

En términos de beneficios, la inyección de dependencia es mucho más atractiva.

Aquí hay un buen artículo que encontré en Medium sobre el tema de la inyección de dependencia en Swift: Inyección de dependencias en Swift – Desarrollo de aplicaciones iOS