Principio de Responsabilidad Única (SRP)
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.
1. 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.
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.
2. 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. 😊
Resumen del tema
Conceptos clave #
- Principio de Responsabilidad Única (SRP): una clase o módulo debe tener una, y solo una, razón para cambiar (un único actor o responsabilidad).
- Separación de Aspectos: separar la estructura de datos (
Usuario), la persistencia (UsuarioRepositorio) y la notificación (UsuarioNotificador). - Mantenibilidad y Menor Acoplamiento: los cambios en la capa de persistencia no afectan al modelo ni a la lógica de negocio.
Qué debes recordar #
Cada clase debe tener una sola responsabilidad y un único motivo para ser modificada en el futuro.