lea muchas publicaciones sobre la diferencia entre las 3 expresiones idiomáticas. Pero me confundí más, entonces me encontré con este artículo: http://martinfowler.com/articles/injection.htmlverificando Entiendo la diferencia entre IoC, Ioc Container, DI y el localizador de servicio
solo quiero ver si lo tengo bien. Por favor corrígeme si estoy equivocado. Por favor, notificarme de las adiciones y corrección:
COI es el concepto de desvincular una aplicación de la implementación de un servicio que utiliza. La aplicación contiene una referencia a Iservice y no se encarga de la instanciación del servicio concreto.
Hay al menos dos vías para achive manera:
DI - El servicio concreto se inyecta como un parámetro ctor/lanzar una inyección interfaz colocador/tiro (lo que hace esto último quiere decir?)
ServiceLocator - es un componente que conoce todos los servicios concretos que la aplicación puede necesitar. La aplicación solicita explícitamente el servicio concreto del Localizador.
* El contenedor de IoC es realmente una fábrica de controles ("proveedor").
Me confundí un poco por la parte "cuando preferir (1) o (2)" en el artículo. ¿podría alguien contar por su propia experiencia en palabras simples?
"Service Locator tiene una ligera ventaja debido a su comportamiento más directo. Sin embargo, si está creando clases para usar en múltiples aplicaciones, entonces Dependency Injection es una mejor opción." -> ¿Cómo es el localizador más directo? porque usa la invocación de método explícitamente? ¿Qué es mejor usar DI cuando hay múltiples aplicaciones?
¿Quizás podría resaltar las ideas específicas en esa parte del artículo que le parecen confusas? – prasopes
"Service Locator tiene una ligera ventaja debido a su comportamiento más directo. Sin embargo, si está creando clases para usar en múltiples aplicaciones, entonces Dependency Injection es una mejor opción." -> ¿Cómo es el localizador más directo? porque usa la invocación de método explícitamente? ¿Qué es mejor usar DI cuando hay múltiples aplicaciones? –
relacionado: http://stackoverflow.com/questions/6766056/dip-vs-di-vs-ioc –