SOLID EN PROGRAMACIÓN 

Aquí podrás descubrir que es SOLID, como utilizarlo para mejorar el funcionamiento de tus apps y porque debes incluirlo en las buenas prácticas

Introducción – ¿Qué es SOLID y para qué sirve?

SOLID es un acrónimo mnemotécnico que se utiliza para representar los 5 principios básicos de la programacion orientada a objetos.

Es decir que SOLID son un conjunto de principios que al aplicarlos en el desarrollo de nuestras aplicaciones nos permitirán crear softwares de calidad capaz de alcanzar un código limpio, flexible, robusto, escalable y muy estable.

¿Qué significa cada letra del acrónimo SOLID?

S - Principio de responsabilidad única (Single responsibility principle)

La letra S representa el principio de responsabilidad única y también suele escribirse como un acrónimo: S.R.P. Para explicarlo Robert C. Martin dice que en el desarrollo de programación orientada a objetos una clase debe tener una sola razón para cambiar.

Al escribir nuestro código aplicando el SRP podremos asegurarnos de que estamos protegiéndolo frente a futuros cambios y/o futuras implementaciones, ya que, si logramos hacer que una clase realice una sola acción lógica será mucho más fácil estabilizar y mantener nuestro código frente a futuras modificaciones.

 

O – Principio abierto/cerrado (Open/closed principle)

Por lo general, para que se cumpla este principio se debe aplicar primero el principio de responsabilidad única.

Con el principio abierto/cerrado se determina que una entidad debe estar abierta a extensiones, pero cerrada a modificaciones. Es decir que nuestro código debe ser escrito de tal manera que nos permita ampliar el comportamiento de cada clase sin necesidad de modificar lo que ya está escrito en su código.

Contar con un código flexible capaz de adaptarse fácilmente a una nueva extensión, pero cerrado a modificaciones nos permitirá desarrollar con mayor facilidad aquellas partes donde los cambios son recurrentes.

 

L – Principio de substitución de Liskov (Liskov substitution principle)

Barbara Jane Huberman, más conocida como Barbara Liskov, fue la primera científica informática en hablar del principio de sustitución. Su acrónimo es L.S.P.

Al aplicar este principio se busca establecer que un sistema no altere su comportamiento cuando reemplazamos los objetos de una clase por instancias de cualquier subclase heredada. 

Es decir que con el principio de sustitución se busca que en una jerarquía de clases podamos sustituir correctamente todos aquellos objetos pertenecientes a una clase por objetos de una subclase sin cambiar el comportamiento de esta clase base.

 

I – Principio de segregación de interfaz (Interface segregation principle) 


El I.S.P. se utiliza para desacoplar módulos entre sí. Es decir que a través de su implementación se busca segregar o dividir una gran interface, forzada a implementar muchos métodos, en pequeñas interfaces que definan pocos métodos.

Al implementar este principio evitaremos que una clase dependa de métodos que no utiliza con lo que evitaremos dependencias no deseadas o el surgimiento de errores inesperados.

 

D – Principio de inversión de dependencias (Dependency inversion principle)

La última letra de SOLID corresponde al principio de inversión de dependencias (D.I.P.), cuyo objetivo es lograr que tu código sea testeable.

Este principio busca reducir las dependencias entre módulos para disminuir los acoplamientos de clases y para ello propone que el núcleo de un software no dependa de los detalles de implementación del mismo.

Es decir que, los módulos de alto nivel no deben depender de los módulos de bajo nivel y por lo contrario dependan de abstracciones.

 

¿Cómo implementar SOLID en la programación orientada a objetos?

A la hora de implementar SOLID en el desarrollo de la programación orientada a objetos (POO) debemos tener en cuenta que la mayor parte del tiempo estos principios están interrelacionadas entre sí, es decir que para que su implementación sea eficiente debemos aplicarlos juntos.

Y aunque en algunos casos es imposible que se cumplan todos a la vez, no debemos obsesionarnos con que sea diferente. Esto podemos comprobarlo fácilmente al darnos cuenta de que muchas veces cuando cumplimos con uno de los principios también estemos incumpliendo con otro.

Es por eso que para implementarlos debemos tener un profundo conocimiento de nuestro código que nos permita entender perfectamente las clases, los objetos y como estos se interactúan y se relacionan entre sí.

Ventajas y desventajas de aplicar los principios SOLID

Una de las principales ventajas que podemos obtener al aplicar SOLID, además de facilitar el entendimiento de las arquitecturas, es evitar que nuestro código caiga en el caos y surjan errores inesperados en todo momento.

A pesar de que a primera vista puede que nuestro código se transforme en algo que puede llegar a ser un poco más complejo de comprender también estaremos seguros de que será mucho más ordenado, flexible, escalable y fácil de mantener.

Otro punto importante es que al mejorar la cohesión entre clases podremos disminuir el acoplamiento obteniendo así un software mucho más flexible. A su vez, esto nos da la posibilidad de implementar tests más sencillos para comprobar la calidad del código sobre el que estás trabajando.

La mayor desventaja que presentan los principios SOLID es que si no contamos con la preparación adecuada y una comprensión profunda de nuestro código, al querer implementarlos nos encontraremos frente a conceptos ambiguos, capaces de complicar nuestro código al punto que podremos perder horas intentando utilizarlos.

Conclusión 

Gracias a la implementación de SOLID podremos comprender con mayor facilidad si estamos frente a un código limpio o no, es por eso que si queremos mejorar en las buenas prácticas de programación es recomendable aprender a implementar estos principios en el desarrollo de nuestras aplicaciones.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad