Está en la página 1de 10

Dependency Injection

Esteban Calabria 2007

Dependency Injection
Una vez alguien me dijo
En el futuro los desarrolladores van a hacer de integradores de componentes, codificando lo necesario para que diferentes piezas de software preexistenten se orquesten en una aplicacin final.

Lic. Esteban Cesar Calabria

Dependency Injection
En lugar de vincular las clases en tiempo de compilacin, lo hace durante un proceso configuracin en tiempo de ejecucin (AKA. Plugin, IoC)

Lic. Esteban Cesar Calabria

Dependency Injection

Lic. Esteban Cesar Calabria

Dependency Injection
Los servicios no son responsables de instanciar los componentes de los que dependen Provee una diseo menos acoplado donde la implementacin de los servicios dependiente puede ser intercambiada de forma transparente Aplica el principio de Hollywood, "don't call me, I will call you"
Lic. Esteban Cesar Calabria

Dependency Injection
Ventajas
Facilita hacer pruebas (unit testing) con Mock objects (objetos simulados) Software ms fcil de mantener Facilita refactorizar cdigo Promueve la reutilizacin componentes

Lic. Esteban Cesar Calabria

Dependency Injection
Tcnicas comunes
Construtor Injection public ServiceA(ServiceB serviceB)

Seter Injection public void setServiceB(ServiceB serviceB)

Service Locator public ServiceA() { this.serviceB =Container.getSInstance().getService(ServiceB.class);

Dependency Injection
Existen numerosos Frameworks comerciales que permiten implementar Dependency Injection
Spring Framework Pico Container Avalon

Lic. Esteban Cesar Calabria

Dependency Injection
Referencias
Martin Folwer, Inversion of Control Containers and the Dependency Injection pattern, http://martinfowler.com/articles/injection.html

Inversion Of Control (IoC) & Dependency Injection, http://docs.exoplatform.org/exodocuments/exo-platform.site/ioc.html

Lic. Esteban Cesar Calabria

Fin

Lic. Esteban Cesar Calabria

También podría gustarte