Codigo limpio y refactorización
El Principio de Responsabilidad Única (SRP) establece que una clase, función o módulo debe tener una única razón para cambiar. Esto significa que cada componente debe encargarse de una única tarea o responsabilidad específica.
- ¿Por qué es importante?
Si un componente tiene múltiples responsabilidades, los cambios en una parte podrían afectar a las demás, lo que dificulta el mantenimiento y aumenta las posibilidades de errores.
Ejemplo 1: Una Clase con Múltiples Responsabilidades
Código Malo (Violación del SRP)
Problema: La clase
Usuariotiene múltiples responsabilidades: manejar la información del usuario, interactuar con la base de datos y enviar correos electrónicos. Esto viola el SRP porque cambios en la lógica de la base de datos o el correo afectarían a esta clase.
1public class Usuario { 2 private String nombre; 3 4 public Usuario(String nombre) { 5 this.nombre = nombre; 6 } 7 8 public void guardarEnBaseDeDatos() { 9 // Código para guardar el usuario en la base de datos 10 System.out.println("Guardando usuario en la base de datos..."); 11 } 12 13 public void enviarCorreoBienvenida() { 14 // Código para enviar un correo de bienvenida 15 System.out.println("Enviando correo de bienvenida..."); 16 } 17}
Código Bueno (Aplicando SRP)
Solución: Dividimos las responsabilidades en diferentes clases:
Usuariosolo contiene la información del usuario.UsuarioRepositoriomaneja la interacción con la base de datos.UsuarioNotificadorse encarga del envío de correos. Ahora cada clase tiene una única responsabilidad.
1public class Usuario { 2 private String nombre; 3 4 public Usuario(String nombre) { 5 this.nombre = nombre; 6 } 7 8 public String getNombre() { 9 return nombre; 10 } 11} 12 13public class UsuarioRepositorio { 14 public void guardar(Usuario usuario) { 15 System.out.println("Guardando usuario en la base de datos..."); 16 } 17} 18 19public class UsuarioNotificador { 20 public void enviarCorreoBienvenida(Usuario usuario) { 21 System.out.println("Enviando correo de bienvenida..."); 22 } 23}
Beneficios de Aplicar el SRP
- Facilidad de mantenimiento: Cambios en una parte del sistema no afectan a otras.
- Mayor claridad: Las clases y funciones tienen propósitos claros.
- Escalabilidad: Es más fácil agregar nuevas funcionalidades sin introducir errores.
El SRP es uno de los principios más importantes del desarrollo de software limpio. Siguiendo este enfoque, tu código será más modular, entendible y robusto. 😊
- Loading...