SOLID 1: única responsabilidad (single responsibility)

SOLID 1: única responsabilidad (single responsibility)

Aprende el principio de única responsabilidad (SRP) en programación orientada a objetos y cómo puede ayudarte a crear código mas flexible y fácil de mantener.

[Publicado el 29 de Marzo, 2023 en rckstr1.github.io]

INTRODUCCIÓN

El principio de única responsabilidad, Single Responsibility Principle (SRP) es el primero de los 5 principios SOLID y es esencial para crear codigo limpio y mantenible. En este post, exploramos el principio de única responsabilidad en más detalle, discutiendo por qué es importante, como aplicarlo en la práctica, y algunos ejemplos de como puede usarse para crear codigo más limpio.

PRINCIPIO DE ÚNICA RESPONSABILIDAD (SRP)

El principio de única responsabilidad (SRP) es un principio de diseño clave en la programación orientada a objetos que establece que una clase debe tener una sola responsabilidad o razón para cambiar. En otras palabras, una clase debe tener un solo trabajo o función, y debe hacerlo bien.

Al apegarse al principio de única responsabilidad, los desarrolladores podemos crear código que sea mas modular, flexible y mantenible. Si una clase tiene mas de una responsabilidad, se vuelve mas difícil de modificar, probar y reusar. Al dividir clases complejas en varias clases mas pequeñas y especializadas, podemos hacer que nuestro código sea mas facil de entender y modificar.

Por ejemplo, consideremos una clase que se encargue de la autenticación y manejo del perfil de un usuario:

class Usuario {
    public void login(String username, String password) {
        // ejecutar autenticacion
    }

    public void actualizarPerfil(String nombre, String apellido, String email) {
        // ejecutar actualizacion de perfil
    }
}

Esta clase infringe el principio de única responsabilidad porque tiene dos responsabilidades distintas: ejecutar la autenticacion y manejar el perfil del usuario. Para resolver esto, podemos dividir la clase Usuario en dos clases distintas: un Authenticador y un AdministradorPerfil:

class Autenticador {
    public void login(String username, String password) {
        // ejecuta autentication
    }
}

class AdministradorPerfil {
    public void actualizarPerfil(String nombre, String apellido, String email) {
        // ejecuta actualizacion
    }
}

De esta manera, si necesitas cambiar la manera en que se ejecuta la autenticación, puedes modificar la clase Autenticador sin afectar la clase AdministradorPerfil.

En resumen, el principio de única responsabilidad (Single Responsibility Principle, SRP) es una herramienta poderosa para crear diseños de software mantenibles. Al seguir este y los otros principios SOLID, podemos crear sistemas que sean mas fáciles de mantener y escalar, reduciendo costos de desarrollo y mejorando la satisfacción del cliente. Asi que, si buscas mejorar tus habilidades de diseño de software, comienza por aplicar el principio de única responsabilidad a tu código y vé los beneficios por tí mismo.

Nos vemos en el siguiente post, donde cubriremos el segundo de los principios SOLID, principio de "Abierto-Cerrado" (Open-Closed Principle, OCP), que establece que las entidades de software deben ser abiertas a extensiones pero cerradas a modificaciones.

Happy coding!