Open Closed Principle: extensión sin modificación
Clase 5 de 27 • Curso de Patrones de Diseño y SOLID en Python
Contenido del curso
Principios SOLID
- 2

Principio de responsabilidad única en SOLID
05:59 min - 3

Refactorizando código Python con principios SOLID
11:14 min - 4

Cómo aplicar SRP en un procesador de pagos con Stripe
25:19 min - 5

Open Closed Principle: extensión sin modificación
Viendo ahora - 6

Cómo usar clases abstractas en Python
14:46 min - 7

Principio de Liskov en S.O.L.I.D.
03:18 min - 8

Principio de sustitución de Liskov en Python
06:38 min - 9

Interface Segregation: cuándo separar contratos
02:33 min - 10

Segregación de interfaces en procesadores de pagos
09:05 min - 11

Principio de inversión de dependencias explicado
04:13 min - 12

Principio de inversión de dependencias: servicio de pagos flexible
05:56 min
Reestructuración del proyecto
Patrones de Diseño
- 14

Qué son los patrones de diseño: definición y categorías
03:54 min - 15

Strategy Pattern con Python y setprocessor
01:55 min - 16

Strategy Pattern para pagos en Python
10:58 min - 17

Factory Pattern: centralizar creación de objetos
03:05 min - 18

Patrón Factory para procesar pagos con match
11:06 min - 19

Patrón Decorator en 5 pasos para funcionalidad dinámica
03:06 min - 20

Patrón decorador en servicios de pagos
12:57 min - 21

Builder Pattern: construcción paso a paso
01:28 min - 22

Builder pattern para servicios de pagos
18:55 min - 23

Observer Pattern en sistemas de eventos
01:48 min - 24

Observer en sistemas de pagos con Python
11:11 min - 25

Chain of Responsibility para validar pagos
02:04 min - 26

Chain of Responsibility en servicios de pagos
16:27 min - 27

Arquitectura robusta para procesadores de pago
03:19 min
Domina el principio abierto cerrado, o Open Closed Principle, de SOLID para crear software en Python que crece sin romperse. Abierto para su extensión y cerrado para su modificación: así respondes a cambios del negocio con estabilidad, menos errores y actualizaciones rápidas.
¿Qué es el principio abierto cerrado y por qué importa?
El principio establece que el software debe estar abierto para su extensión, pero cerrado para su modificación. Responde a la naturaleza cambiante del software: agregar nuevas funcionalidades, ajustar las existentes o eliminar las que ya no aportan. Al no tocar código probado, evitas introducir fallas y mantienes la estabilidad del sistema.
¿Qué significa abierto para extensión?
Agregar nuevas capacidades sin alterar la base de código.
- Nuevas funcionalidades que se suman como comportamientos adicionales.
- Uso de interfaces, abstracciones y polimorfismo para ampliar sin reescribir.
- Flexibilidad para evolucionar el producto con menor riesgo.
¿Qué implica cerrado para modificación?
Proteger el código ya validado y en producción.
- Evitar cambios sobre lo que está probado y funciona.
- Fomentar encapsulamiento y coherencia del diseño.
- Reducir errores y acelerar las actualizaciones.
¿Cómo aplicarlo en Python con interfaces, abstracciones y polimorfismo?
En Python, apoyarte en abstracciones y polimorfismo permite agregar comportamientos nuevos sin modificar lo anterior. Diseñas puntos de extensión claros y dejas intacto lo que ya fue validado, cuidando la calidad y el tiempo de entrega.
¿Qué habilidades y conceptos activa?
- Diseñar con interfaces y abstracciones para aislar cambios.
- Aplicar polimorfismo para intercambiar comportamientos sin tocar el núcleo.
- Mantener encapsulamiento para proteger invariantes del sistema.
- Priorizar estabilidad con evolución rápida del producto.
¿Qué beneficios directos se observan?
- Menos errores al no modificar código probado.
- Actualizaciones más fáciles y entregas rápidas.
- Mejor respuesta a cambios de requisitos del negocio.
¿Cuándo aplicarlo en un procesador de pagos con Stripe y nuevas pasarelas?
Cuando necesites extender el comportamiento sin tocar el código existente. El ejemplo citado: un procesador de pagos donde se desea añadir una nueva pasarela distinta a Stripe o una nueva forma de notificación más allá de correo electrónico o mensaje de texto.
¿Qué ejemplos prácticos menciona?
- Agregar una pasarela diferente a Stripe sin modificar la integración actual.
- Incorporar otro canal de notificación además de correo o SMS.
- Responder a cambios frecuentes de requisitos sin romper lo que ya funciona.
- Garantizar que lo nuevo sea coherente con lo existente.
Comparte en comentarios cómo aplicarías el principio Open Closed al procesador de pagos en el que trabajas y cómo lo has usado en tu día a día para desarrollar con estabilidad y rapidez.