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?
.
- Si Swift es solo el 5% del desarrollo de iOS, ¿cuál es el otro 95% y qué tan difícil es aprender?
- ¿Cuál es la mejor manera de probar un juego de Unity en iOS? ¿Necesita simplemente construirlo a través de xCode o hay una forma más simple de probar?
- ¿Qué podría hacer que una aplicación iOS se ejecute perfectamente en una configuración, pero no en otra?
- ¿Usaría Core Data para una aplicación de iOS con una fuente social (piense en las publicaciones de Facebook), donde a veces tiene la necesidad de persistir esos elementos de la fuente?
- ¿Por qué no se anunció la función del grabador de pantalla iOS 11 durante la WWDC 2017?
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.