tag:blogger.com,1999:blog-9719570.post9119356870286571532..comments2023-05-25T17:48:37.059+02:00Comments on For {my} information...: Inversion of Control con Dependency Injection y/o Service Locatorxampihttp://www.blogger.com/profile/07423307227102707945noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-9719570.post-22415664901291003412011-08-01T22:06:57.165+02:002011-08-01T22:06:57.165+02:00@Eduard
No tenia el aviso de comentarios activado ...@Eduard<br />No tenia el aviso de comentarios activado y he visto tu comentario hoy! Dandole la vuelta a lo que comentas, también podemos ver el vaso medio vacío: el uso de SL tiene dos desventajas importantes:<br /><br />1. No te permite ver las dependencias de tu clase viendo el constructor.<br />2. No deja aflorar el incumplimiento de SRP<br /><br />Por cierto, escribiendo el post me he dado cuenta de que estábamos haciendo bastantes cosas mal en los tests unitarios, como lo que comentas de configurar el contendor de IoC con los stubs o los mocks, etc... a ver si saco tiempo y escribo algo sobre estas "cagadas". <br /><br />Gracias por el comentario crack!xampihttps://www.blogger.com/profile/07423307227102707945noreply@blogger.comtag:blogger.com,1999:blog-9719570.post-6290928279972969962011-07-28T10:17:08.427+02:002011-07-28T10:17:08.427+02:00Hey! ;-)
Muy interesante!
Tras varias lecturas y ...Hey! ;-)<br />Muy interesante!<br /><br />Tras varias lecturas y básicamente mis experiencias (muchas de las cuales, ya sabes, concuerdan con las tuyas :p) efectivamente tiendo a pensar que el uso del Service Locator (SL) es más un antipatrón que otra cosa.<br />Para mi la frase que lo resume es que el uso de SL oculta las dependencias REALES de tu clase. Es cierto que con SL reduces el acoplamiento, puesto en lugar de depender de N clases, dependes de una. Y cierto es que inyectar el propio SL a través de DI te permite eliminar esta única dependencia y además testear fácilmente tus componentes, a costa eso sí, de tener que configurar en los tests el contenedor de IoC a con todos los Mocks.<br /><br />Pero por otro lado el uso de DI te da dos ventajas claras:<br /><br />1. Viendo el constructor se pueden ver las dependencias reales de tu clase<br />2. Y importante: te permite ver en el acto que estás inyectando "demasiadas" dependencias en tu clase y que eso, con casi toda probabilidad, significa que tu clase no cumple ni de lejos el SRP.<br /><br />Saludos! ;-)Eduard Tomàshttp://geeks.ms/blogs/etomasnoreply@blogger.com