Principios SOLID: Single Responsibility Principle

SOLID es el acrónimo de cinco principios básicos de la programación orientada a objetos. La aplicación de este conjunto de principios de programación conlleva al desarrollo de sistemas más simples, fáciles de mantener y ampliables a lo largo del tiempo. Si bien debemos. entender los principios como directrices y no como leyes.

Se dice que un desarrollador junior debería aplicarlos siempre. Con el paso del tiempo y la adquisición de experiencia e interiorización de estos y otros conceptos de desarrollo de software, podrá decidir acertadamente en qué grado debe aplicar cada uno de ellos en función de sus necesidades, moldeando la arquitectura del sistema a su conveniencia.

Single Responsibility Principle

Primer principio de SOLID, abreviado como SRP y conocido como principio de responsabilidad única en español.

Este principio busca fomentar la cohesión en el código enunciando que si cada clase de nuestro sistema tiene una única responsabilidad (finalidad u objetivo) esta será más sencilla de mantener.

Vamos a verlo con un ejemplo:

Supongamos que queremos mostrar un mensaje de felicitación de cumpleaños en el panel de control de un usuario de nuestra aplicación.

En un primer momento, una clase UserPanel consulta la fecha de nacimiento del usuario y comprueba si el día y mes coinciden con la fecha actual para felicitarle.

Como podemos ver en el ejemplo anterior, la clase User está exponiendo la implementación de su atributo birthdate a través de un método accesor getter, aunque el propio atributo esté declarado como privado.

La responsabilidad mal establecida está rompiendo con el encapsulamiento y por ello aumentando el acoplamiento entre las dos clases y reduciendo la cohesión. Para que esto no suceda, se ha de mover dicha responsabilidad para que sea el objeto de la propia clase User quien diga si es o no su cumpleaños.

El código resultante sigue siendo mejorable, pero al menos se ha avanzado un paso más con respecto al original.