none
Sobre la Inyección de Dependencias, buenas practicas RRS feed

  • Pregunta

  • Mas que una pregunta concreta me gustaría saber su opinión al respecto.

    Si bien la Inyección de dependencias es una herramienta excelente a la hora de realizar unit Testing y modularizar el funcionamiento de la aplicación, cuando hablamos de niveles de abastracción mas altos por ejemplo clases coordinadoras(tambien llamadas servicios), fachadas que interactuan con varias clases, nos encontramos con el problema de acabar con constructores con varios parámetros por ejemplo:

    public class SistemaVentas
    {
            public SistemaVentas(IAutorizador autorizador,
                                 IAccesoADatos datos,
                                 IServicioDePagosExterno servicioDePagos, 
                                 IServicioReportes servicioReportes,
                                 IConfiguracion config,
                                 ILog logger)
           {
               // inicialización de campos etc
           }
    
    }

    Si bien el mero hecho de tener tantas dependencias en el constructor de la clase es un indicativo de que la clase quizas esta realizando demaciadas cosas en este caso es valido dado que se trata de una clase coordinadora.

    El tema y sobre lo que me gustaria saber su opinión es sobre lo bueno o malo que pueda ser implementar clases de este tipo, ya que podrian ser dificiles de manejar para desarrolladores que intenten utilizar la api dado su gran numero de parametros, entiendo que esto se resolvería facil con un Framework de inyección de dependencias. Siento que no es una buena practica ya que se esta rompiendo la encapsulación al exponer tantos detalles de la implementación(que modulos necesita para funcionar).

    Por otro lado también me pregunto como es el manejo de los ciclos de vida de las clases inyectadas, pueden darse casos en los que quizas solo un metodo en la clase utilize una dependencia y no sea necesaria nuevamente, o estan tambien las clases que requieren el uso del patrón Dispose para liberar recursos y siendo inyectadas por constructor no es posible recrearlas.

    ¿Que piensan ustedes de estos casos?

    ¿Cuales consideran que son las mejores practicas a la hora de hacer Inyección de Dependencias?

    ¿Como manejan los casos en los que el tiempo de vida del objeto es muy corto o es necesario liberarlo?

    ¿Como se debería exponer la "api" para que sea facilmente utilizada por otros programadores o reutilizada?

    Saludos.

    viernes, 25 de mayo de 2018 18:27

Todas las respuestas

  • Hola ,

    En realcion a tu consulta, ¿Pudiste resolverlo? ¿Encontraste una solucion?

    Quedo al pendiente de tus comentarios.

    Saludos cordiales

    Gracias por usar los foros de TechNet.


    _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 29 de mayo de 2018 18:42
    Moderador