Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 10
Patrones de Diseño
IoC - Inyección de Dependencias
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
Inyección de dependencias
• En Informática, Inyección de Dependencias
(en inglés Dependency Injection, DI) es un
patrón de diseño orientado a objetos, en el que
se suministran objetos a una clase en lugar de
ser la propia clase quien cree el objeto. El
término fue acuñado por primera vez por Martin
Fowler.
» Wikipedia
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
Framework Url
Castle Windsor http://www.castleproject.org/container/index.html
Ninject http://www.ninject.org
Spring .NET http://www.springframework.net
StructureMap http://structuremap.sourceforge.net/Default.htm
Unity http://codeplex.com/unity
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
Microsoft.Practices.Unity.dll
Microsoft.Practices.Unity.Configuration.dll
System.Configuration.dll
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
….
….
</unity>
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
Unity en UML
UnityContainer
+Resolve<T>(): T
IUnityContainer +Resolve<T>(name: string): T
+Resolve(t: Type): T
+LoadConfiguration(containerName: string): IUnityContainer
<<create>>
1 : DemoBL()
2 : LoadConfiguration()
3 : Resolve<IDemoDAO>()
4 : factory := DemoDAO
5 : GetAllFromCategorias()
6 : GetAllFromCategorias()
8 7
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC /DISOFT
Usando Unity
public class DemoBL:IDemoBL
{
IDemoDAO factory;
public DemoBL()
{
using(IUnityContainer repository = new UnityContainer())
{
repository.LoadConfiguration("RepositoryDAO");
factory = repository.Resolve<IDemoDAL>();
}
}
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe
IS-UPNC / DISOFT
Muchas gracias
DISOFT – Ing. Sistemas – UPN Cajamarca © Ing. Samuel Mestanza Alcántara – sma@upnorte.edu.pe