Introducción a los Patrones de Diseño de Software
Clase 14 de 27 • Curso de Patrones de Diseño y SOLID en Python
Contenido del curso
- 2

Principio de Responsabilidad Única en Desarrollo de Software
05:59 - 3

Procesador de Pagos con Principios SOLID y Stripe
11:14 - 4

Aplicación del Principio de Responsabilidad Única en Procesador de Pagos
25:30 - 5

Principio Abierto-Cerrado en Desarrollo de Software
02:39 - 6

Implementación del Principio Abierto-Cerrado en Procesadores de Pago y Notificadores
14:46 - 7

Principio de Sustitución de Liskov en Desarrollo de Software
03:18 - 8

Aplicación del Principio de Sustitución de Liskov en Python
06:44 - 9

Principio de Segregación de Interfaces en Software
02:33 - 10

Implementación del Principio de Segregación de Interfaces en Procesadores de Pago
09:06 - 11

Principio de Inversión de Dependencias en Software
04:23 - 12

Aplicación del Principio de Inversión de Dependencias en Python
05:56
- 14

Introducción a los Patrones de Diseño de Software
03:54 - 15

Patrón Strategy en Diseño de Software con Python
01:55 - 16

Implementación del Strategy Pattern en Procesador de Pagos en Python
10:58 - 17

Patrón Factory Pattern en Python: Creación de Objetos Dinámicos
03:05 - 18

Patrón Factory en Procesadores de Pago en Python
11:06 - 19

Patrón Decorador: Añadir Responsabilidades Dinámicas a Objetos
03:06 - 20

Aplicación del Patrón Decorador en Servicios de Pago
12:57 - 21

Patrón de Diseño Builder: Construcción de Objetos Complejos
01:28 - 22

Builder Pattern para Servicio de Pagos en Python
18:55 - 23

Patrón Observer: Gestión de Eventos y Notificaciones Automáticas
01:48 - 24

Patrón Observer en Sistemas de Pago: Implementación y Notificaciones
11:12 - 25

Patrón Chain of Responsibility en Validación de Pagos
02:04 - 26

Implementación del patrón Chain of Responsibility en validaciones de pago
16:27 - 27

Principios SOLID y Patrones de Diseño en Procesadores de Pago
03:19
¿Qué son los patrones de diseño y por qué son importantes?
Los patrones de diseño son soluciones reutilizables para problemas comunes en el desarrollo de software. Imagina los patrones de diseño como recetas culinarias: cada patrón es como una receta que se aplica en condiciones específicas para resolver un problema recurrente en la programación. Surgieron del libro "Design Patterns", escrito por cuatro autores conocidos como "La Banda de los Cuatro". Estos autores clasificaron 23 patrones en tres categorías distintas: creacionales, estructurales y de comportamiento. Al igual que los principios SOLID, los patrones de diseño facilitan la creación de un código más mantenible y reutilizable y ayudan a establecer un lenguaje común entre los desarrolladores.
¿Cuáles son los patrones de diseño creacionales?
Los patrones creacionales se centran en la creación de instancias de objetos, especialmente cuando una clase es compleja de instanciar debido a sus múltiples atributos o condiciones previas a su creación. Hay cinco patrones de diseño creacionales destacados:
- Singleton: Garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global a ella.
- Factory Method: Define una interfaz para crear un objeto, pero deja que las subclases decidan qué clase instanciar.
- Abstract Factory: Ofrece una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas.
- Builder: Separa la construcción de un objeto complejo de su representación, permitiendo crear diferentes tipos de objetos con el mismo proceso.
- Prototype: Permite copiar instancias existentes sin depender de sus clases.
¿Qué son los patrones de diseño estructurales?
Los patrones de diseño estructurales están enfocados en la composición efectiva y escalable de clases y objetos. Proveen soluciones para estructurar tus clases de manera que maximicen la eficiencia y escalabilidad. Los siete patrones estructurales clave son:
- Adapter: Permite que interfases incompatibles trabajen juntas.
- Bridge: Desacopla una abstracción de su implementación para que ambas puedan variar independientemente.
- Composite: Permite componer objetos en estructuras de árbol para representar jerarquías parte-todo.
- Decorator: Añade nuevas funcionalidades a un objeto de manera dinámica.
- Facade: Simplifica la interfaz de un conjunto de clases.
- Flyweight: Usa compartición para soportar de manera eficiente grandes cantidades de objetos.
- Proxy: Proporciona un sustituto o marcador de posición para controlar el acceso a otros objetos.
¿Cómo ayudan los patrones de diseño de comportamiento?
Los patrones de diseño de comportamiento abordan la comunicación y asignación de responsabilidades entre objetos, facilitando la interacción entre clases de distintas naturalezas. Entre los 11 patrones de comportamiento propuestos, algunos de los más destacados son:
- Observer: Permite a un objeto notificar a otros objetos sobre cambios en su estado.
- Strategy: Define una familia de algoritmos, encapsula cada uno, y los hace intercambiables.
- Command: Encapsula una solicitud como un objeto, permitiendo parametrizar a los clientes con diferentes solicitudes.
- Iterator: Proporciona una manera de acceder secuencialmente a elementos de un objeto agregado sin exponer su representación subyacente.
- Mediator: Define un objeto que encapsula cómo interactúan un conjunto de objetos.
- State: Permite a un objeto alterar su comportamiento cuando su estado interno cambia.
- Visitor: Permite definir nuevas operaciones sobre objetos de una estructura objeto sin cambiar las clases de los elementos sobre los cuales opera.
Déjanos tus comentarios sobre qué patrones de diseño conoces y qué curiosidades has descubierto sobre su historia. ¡Tu conocimiento y experiencia pueden inspirar a otros desarrolladores!