Principios SOLID: Una introducción a los principios de la programación orientada a objetos

22 Jun 2023 | Arquitectura | 0 Comentarios

Escrito por Luis Miguel Martín

Introducción

En este artículo, exploraremos los principios SOLID, fundamentales en el mundo de la programación orientada a objetos.

La programación orientada a objetos nos brinda la capacidad de encapsular la lógica de las entidades, lo que facilita la reutilización de código en diferentes partes de nuestro software.

Sin embargo, a medida que nuestros desarrollos crecen y pasan por manos de diferentes programadores, la falta de una estructura sólida puede ocasionar problemas. Para minimizar estas situaciones, Robert C. Martin introdujo el acrónimo SOLID, que representa cinco principios básicos de la programación orientada a objetos.

Al seguir estos principios SOLID, se vuelve más sencillo mantener y ampliar nuestros desarrollos, evitando refactorizaciones de código masivas.

A continuación, exploraremos cada uno de los cinco principios SOLID.

Principios SOLID

S: Single Responsibility Principle (SRP) o Principio de Responsabilidad Única

El Principio de Responsabilidad Única establece que «una clase debe tener solo una razón para cambiar».

Esto implica que cada clase debe tener una única responsabilidad y, esta responsabilidad, debe estar contenida en su totalidad en dicha clase.

Si una clase asume más de una responsabilidad, será más sensible al cambio.

O: Open/Closed Principle (OCP) o Principio de Abierto/Cerrado

El Principio de Abierto/Cerrado se refiere a que «una entidad debe estar abierta para su extensión, pero cerrada para su modificación»

Este principio habla de que se debe de poder extender el comportamiento de las entidades, pero sin necesitar modificar el código fuente.

Existen dos enfoques sobre este principio:

  • Principio Abierto/Cerrado de Meyer.
  • Principio Abierto/Cerrado polimórfico.

L: Liskov Substitution Principle (LSP) o Principio de Sustitución de Liskov

El Principio de Sustitución de Liskov establece que «las clases derivadas deben poder sustituirse por sus subclases»

Significa que los objetos tienen que poderse reemplazar por instancias de sus subtipos, manteniendo el correcto funcionamiento del sistema.

I: Interface Segregation Principle (ISP) o Principio de Segregación de Interfaz

El Principio de Segregación de Interfaz se refiere a lo siguiente: «Haz interfaces que sean específicas para un tipo de cliente, en lugar de interfaces genéricas»

Es preferible tener muchas interfaces que definan los métodos justos que forzar a implementar métodos innecesarios.

D: Dependency Inversion Principle(DIP) o Principio de Inversión de Dependencias

El Principio de Inversión de Dependencias sugiere lo siguiente: «Depende de abstracciones, no de clases concretas»

Con este principio se busca reducir las dependencias entre los módulos para poder alcanzar un bajo acoplamiento entre clases.

Conclusiones

Además de los muchos defensores de estos principios, existen bastantes detractores, acusándolos de aumentar la complejidad del código y de ser ambiguos y confusos.

Hay que recordar que los principios SOLID son un conjunto de buenas prácticas, no leyes ni reglas que haya que aplicar siempre. Estas buenas prácticas funcionan en muchos casos, pero no hay pruebas de que siempre funcionen ni de que siempre se deban seguir.

PD: Si queréis leer más sobre este tema, podéis comenzar con este enlace, o si tenéis cualquier duda podéis poneros en contacto conmigo enviando un DM por twitter.

Explora Más Contenidos Interesantes

Ley de Demeter: No hables con extraños

Introducción En este artículo vamos a ver qué es la Ley de Demeter, un principio muyútil a la hora de no tener acoplamiento de código relacionado a la estructuración de nuestras clases. ¿Qué es la Ley de Demeter? La Ley de Demeter (o Ley de No Hables con Extraños) fue...

leer más

¿Qué son las cláusulas de guarda?

Introducción En este artículo hablaremos sobre las cláusulas de guarda, una técnica que nos permite mejorar la mantenibilidady legibilidad de nuestro código. ¿Qué son las cláusulas de guarda? Las cláusulas de guarda son una técnica que nos permite simplificar la...

leer más

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *