es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Inyección de Dependencias: ¿podría hacer que tu código sea más difícil de cambiar en el futuro?

Por lo que entiendo, la inyección de dependencias básica significa que en lugar de crear una dependencia dentro de una clase, la creas por fuera y la pasas como parámetro.

Así que digamos que tienes una clase Logger que hace algunas cosas y luego escribe en un registro de actividades, y depende de un objeto WriteToFile. En lugar de crear ese objeto WriteToFile dentro de la clase Logger, lo creas por fuera y lo pasas como parámetro cada vez que creas una nueva instancia de Logger.

Lo que me confunde es imagina que hay 1,000 lugares en tu código donde creas un objeto Logger y imagina que por alguna razón ya no necesitas usar el objeto WriteToFile en tu clase Logger…

Sin la inyección de dependencias, solo tendrías que eliminar el código en la clase Logger que crea un objeto WriteToFile y lo utiliza. Esto podría tomar un par de segundos.

Pero con la inyección de dependencias, tienes que encontrar esos 1,000 lugares donde creaste el objeto Logger y eliminar el código donde creaste el objeto WriteToFile y lo pasaste como parámetro.

¿Es eso correcto o me estoy perdiendo algo importante?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en OOP y la inyección de dependencias, tu comprensión de la inyección de dependencias básica es correcta. En lugar de crear una dependencia dentro de una clase, la creas fuera y la pasas como parámetro.

    En cuanto a tu preocupación acerca de eliminar la dependencia del objeto WriteToFile de la clase Logger, es correcto que si utilizas la inyección de dependencias, tendrás que actualizar las 1,000 instancias donde creaste objetos Logger y pasar las dependencias actualizadas. Sin embargo, es importante tener en cuenta que en un código bien diseñado, este escenario no debería ocurrir con frecuencia.

    La inyección de dependencias se utiliza a menudo para hacer el código más modular y más fácil de probar. Al hacer que las dependencias sean explícitas y se pasen como parámetros, podemos intercambiar o simular dependencias fácilmente con fines de prueba sin cambiar el comportamiento ni la estructura del código.

    En resumen, si bien actualizar las dependencias en muchos lugares puede ser una desventaja de utilizar la inyección de dependencias, los beneficios de tener un código modular y fácil de probar superan el costo de mantenimiento a medida que crece la base de código.

Comments are closed.