SOLID - Principio Inversión de Dependencia

20
Principio Inversion de Dependencia Patrones de Diseños SOLID Inyeccion de Dependencia DDD Domain Driven Desing Invesión de Control Entity Framework LINQ C# IoC Repository Composite Singleton Decorator Unit of Work Luis Alberto Baigorria Rodas

description

[SOLID - Principio Inversión de Dependencia]. El presente documento presenta el principio de Inversión de Dependencia. Se incluye conceptos de Inversión de Control, Unit of Work, Inyección de Depencia con Unity, Contenedor IoC.

Transcript of SOLID - Principio Inversión de Dependencia

Page 1: SOLID - Principio Inversión de Dependencia

Principio Inversion de Dependencia

Patrones de Diseños

SOLIDInyeccion de Dependencia

DDD Domain Driven Desing

Invesión de Control

Entity Framework LINQ

C#

IoC

RepositoryComposite

Singleton

Decorator

Unit of Work

Luis Alberto Baigorria Rodas

Page 2: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

¿Que es un patrón de diseño?

• Solución a un problema de diseño.

• Debe ser Efectivo

• Debe ser Reutilizable

• Enciclopedia de Diseño para el Desarrollador

"Abusar o forzar el uso de los patrones puede

ser un error"

Page 3: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Principios SOLID

• Introducido por Robert C. Martin – 2000.

• Principios Básicos sobre la OOP y el diseño.

• Guias a Aplicarse en el desarrollo de Software para

evitar vacios.

• Estar preparado para los cambios de diseño.

• Evitar Acoplamiento entre Clases.

• Alta Encapsulación y Alta Cohesion (Agrupamiento)

Page 4: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

A. Módulos de alto nivel no deberían depender de módulos

de bajo nivel. Ambos deberían depender de abstracciones.

B. Las abstracciones no deberían depender de los detalles.

Los detalles deberían depender de las abstracciones."

Principio de Inversión de Dependencia

Page 5: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Problema 1

Page 6: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Problema 2

Page 7: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Dependencia Directa

Page 8: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Solución 1: Inversión de Dependencia

Page 9: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Solución 2: Inversión de Dependencia

Page 10: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Solucion: Aplicando Inversión de Control (IoC) con Inyección de Dependencia

Page 11: SOLID - Principio Inversión de Dependencia

Inversión de Control - IoC

• Patrón de diseño que coadyuva al bajo acoplamiento entre componentes de un sistema o una aplicación.

• Los objetos consumidores no crean los objectos ayudantes, de los que depende. Estos son creados por

un contenedor (Ejem: UnityConteiner), que inyectará las dependencias.

• Útil para implementar un sistema enfocado a un diseño orientado a componentes.

Page 12: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Page 13: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Page 14: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Page 15: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

Page 16: SOLID - Principio Inversión de Dependencia

Principio Inversión de Dependencia

El propósito es conseguir disponer de capas de alto nivel que sean independientes de la

implementación y detalles concretos de las capas de más bajo nivel, y por lo tanto también,

independientes de las tecnologías subyacentes.

Page 17: SOLID - Principio Inversión de Dependencia

Inyección de Dependencia

• Es un patrón de diseño que consiste en hacer que nuestras

piezas de Software sean independientes.

• Se refiere a la forma de como implementar el patrón IoC.

• Se refiere a la forma de como los objetos consumidores reciben

sus dependencias.

Page 18: SOLID - Principio Inversión de Dependencia

Inyección de Dependencia con Unity

• Frameworks de IoC: Unity, Castle, Spring, Ninject etc.

• Contenedor de Inversion de Control permite aplicar dependencia a un conjunto de componentes o servicios.

• Contenedor de Inversion de Control es capaz de crear instancias de los componentes satisfaciendo sus

dependencias.

Page 19: SOLID - Principio Inversión de Dependencia

Inyección de Dependencia con Unity

Page 20: SOLID - Principio Inversión de Dependencia

Inyección de Dependencia con Unity