¿Qué son los principios SOLID?

SOLID son cinco principios de diseño orientado a objetos (SRP, OCP, LSP, ISP, DIP) que hacen tu código más mantenible, flexible y fácil de ampliar.

🏛️

Origen

Los principios SOLID fueron introducidos por Robert C. Martin, también conocido como Uncle Bob, en su trabajo sobre el diseño orientado a objetos a principios de la década de 2000. Reúnen cinco conceptos de diseño que ayudan a crear sistemas de software más robustos, reduciendo la deuda técnica y facilitando su evolución a lo largo del tiempo.

📕

Definición

SOLID es un acrónimo que representa cinco principios de diseño en la programación orientada a objetos: Responsabilidad Única, Principio Abierto/Cerrado, Sustitución de Liskov, Segregación de Interfaces e Inversión de Dependencias.

🔍

Propósito

Estos principios proporcionan un marco para diseñar software que sea fácil de mantener, comprender y expandir, permitiendo a los desarrolladores evitar problemas comunes de diseño y arquitectura.

🔨

Responsabilidad Única (SRP)

Una clase debe tener solo una razón para cambiar.

🔒

Abierto/Cerrado (OCP)

Las entidades de software deben estar abiertas para extensión, pero cerradas para modificación.

🔄

Sustitución de Liskov (LSP)

Los objetos de una superclase deben ser reemplazables con objetos de sus subclases sin afectar la funcionalidad.

🔀

Segregación de Interfaces (ISP)

Muchas interfaces específicas para el cliente son mejores que una interfaz de propósito general.

🔄

Inversión de Dependencia (DIP)

Los módulos de alto nivel no deben depender de módulos de bajo nivel; ambos deben depender de abstracciones.

💡

Ejemplo

Imagina una clase Factura que calcula importes y, además, los imprime y los envía por correo. Viola la Responsabilidad Única porque tiene varios motivos para cambiar. Separar el cálculo, la impresión y el envío en clases distintas deja un código más limpio: cada pieza se prueba y se modifica por separado, lo que se traduce en menos errores en cada despliegue. Aplicar SOLID es una forma de refactorización continua que reduce la deuda técnica y encaja bien con prácticas iterativas como las que usan los equipos Scrum.

🍄

¿Quieres saber más?

Si te interesa saber más acerca de SOLID, hablemos. Me encanta compartir ideas y ayudar a equipos con estos temas. ¡Te leo!