Los Patrones de Diseño son soluciones reutilizables, probadas y documentadas para problemas recurrentes en el diseño de software. En términos simples, son plantillas que ayudan a resolver problemas comunes, mejorando la fiabilidad, escalabilidad y mantenibilidad de las aplicaciones.
Este curso está dirigido a estudiantes, principiantes y desarrolladores profesionales interesados en aprender y aplicar patrones de diseño en aplicaciones reales usando .NET. Se explica cada patrón paso a paso, comenzando con la definición, seguido de ejemplos simples y reales, comparándolos con los diagramas UML correspondientes para facilitar la comprensión.
Los "Gang of Four" (GOF), autores del libro "Elements of Reusable Object-Oriented Software", clasificaron los patrones de diseño en tres categorías principales:
- Patrones de Diseño Creacionales
- Propósito: Centralizar la creación e inicialización de objetos, simplificando la lógica en el código cliente. Ejemplos: Singleton, Factory, Builder, Prototype, Abstract Factory, etc.
- Aplicación: Ayudan a crear objetos de manera eficiente y adecuada según el contexto.
- Patrones de Diseño Estructurales
- Propósito: Gestionar la estructura y relaciones entre clases e interfaces, permitiendo que los cambios en la estructura no afecten al resto del sistema. Ejemplos: Adapter, Facade, Decorator, Composite, Proxy, Flyweight, Bridge, etc.
- Aplicación: Facilitan la composición de clases y objetos para formar estructuras más grandes y flexibles.
- Patrones de Diseño Comportamentales
-
Propósito: Definir cómo interactúan y se comunican las clases y objetos, permitiendo cambios en el comportamiento sin afectar a otros componentes. Ejemplos: Chain of Responsibility, Command, Observer, Strategy, Template Method, State, Mediator, etc.
-
Aplicación: Simplifican la comunicación entre objetos, garantizando patrones claros de interacción. Otros Patrones Comunes en .NET Además de los 23 patrones clásicos de GOF, se incluyen patrones útiles para aplicaciones .NET:
- Inyección de Dependencias.
- Patrón Repositorio (con y sin Unidad de Trabajo).
- Inversión de Control (IoC).
- No exagerar con los patrones: Úsalos solo cuando resuelvan un problema real y aporten más beneficios que inconvenientes.
- Flexibilidad: A menudo, es necesario combinar varios patrones para resolver problemas complejos.
- Enfoque práctico: Este curso ofrece ejemplos reales y prácticos con aplicaciones como ASP.NET MVC, Web API, ASP.NET Core y Consolas.
| Patrones de diseño creacionales |
|---|
| Nombre | Resumen | Codigo |
|---|---|---|
| SINGLETON | Teoria | Ejemplo |
| FACTORY METHOD | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| Patrones de diseño estructurales |
|---|
| Nombre | Resumen | Codigo |
|---|---|---|
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| Patrones de Diseño Comportamentales |
|---|
| Nombre | Resumen | Codigo |
|---|---|---|
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |
| - | - | - |