Principios SOLID

驴Qu茅 son los principios solid?

Posted by Daniel Vela on November 05, 2023 · 2 mins read

SOLID

Los principios SOLID son com煤nmente utilizados para orientar decisiones arquitect贸nicas en el desarrollo de software. Son cinco reglas dise帽adas para fomentar un c贸digo orientado a objetos que sea limpio y extensible, asegurando comportamientos estables sin necesidad de modificar el c贸digo existente.

Los principios SOLID son los siguientes:

  1. Single Responsibility: Cada clase o funci贸n debe tener una 煤nica responsabilidad. Si una clase maneja m煤ltiples tareas, es recomendable dividirla en clases m谩s simples con responsabilidades 煤nicas. Lo mismo aplica para las funciones: si una funci贸n tiene demasiados par谩metros o realiza numerosas operaciones, deber铆a dividirse en funciones m谩s peque帽as y espec铆ficas. Es crucial nombrar correctamente variables, clases y funciones para reflejar su responsabilidad exclusiva.
  2. Open/Closed: Las clases deben estar abiertas para extensi贸n pero cerradas para modificaci贸n. En lugar de cambiar el comportamiento de una clase existente, es preferible crear una nueva que la extienda. Modificar una clase a menudo contraviene el primer principio de SOLID. Dise帽ar clases que puedan ser extendidas sin ser modificadas es una forma de evitar este problema.
  3. Liskov Substitution: Las instancias de clases derivadas deben poder reemplazar a las de sus clases base. Esto significa que las especializaciones deben mantener los comportamientos de la clase base, ajustando los detalles para cumplir con el contrato de la clase base.
  4. Interface Segregation: Es preferible tener m煤ltiples interfaces peque帽as en lugar de una grande. Este principio es similar al de Single Responsibility pero aplicado a las interfaces.
  5. Dependency Inversion: Se debe depender de abstracciones, no de implementaciones concretas. Esto significa que nuestro c贸digo deber铆a interactuar con interfaces, no con implementaciones espec铆ficas, a menudo logrado a trav茅s de la inyecci贸n de dependencias.

Conclusiones

Aunque estos principios se asocian con la programaci贸n orientada a objetos, no son exclusivos de ella. Ayudan a mejorar la cohesi贸n del c贸digo y a evitar dependencias excesivas entre clases, permitiendo que cada parte del c贸digo conozca solo lo que necesita para funcionar correctamente.