Open Closed Principle: extensión sin modificación

Clase 5 de 27Curso de Patrones de Diseño y SOLID en Python

Resumen

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.