2012-08-30 12 views

Respuesta

5

Fowler tiene una buena comparación entre los dos en su Inversion of Control Containers and the Dependency Injection pattern Heading. En sus pensamientos finales, dice

La inyección de dependencias es una alternativa útil al localizador de servicios. Cuando crean clases de aplicaciones, las dos son aproximadamente equivalentes, pero I piensan que el Localizador de servicios tiene una ligera ventaja debido a su comportamiento más directo . Sin embargo, si está creando clases para ser utilizadas en múltiples aplicaciones, entonces Dependency Injection es una mejor opción .

Puede encontrar más puntos de vista y las comparaciones en here

Por DI:

  • más fácil determinar lo que las dependencias de un componente haya - mira constructor.
  • El componente no tiene dependencia en el Localizador de servicios, así que no hay ningún problema si el componente se usa con un marco diferente.
  • DI puede hacer más fácil la prueba, pero un buen servicio de ubicación mecanismo hará tropezar igualmente factible

contra el DI:

  • Más difícil de depurar y entender.
  • El componente no puede solicitar servicios adicionales desde el inyector una vez que se haya configurado.
Cuestiones relacionadas