DEV Community

Israel Sánchez
Israel Sánchez

Posted on

Entendiendo el Principio de Responsabilidad Única en C#

El Principio de Responsabilidad Única (SRP) es uno de los cinco principios SOLID de la programación orientada a objetos. Se enfoca en la cohesión de las clases y establece que una clase debe tener una única razón para cambiar. En otras palabras, cada clase debe desempeñar un solo rol o responsabilidad en nuestro sistema.

Vamos a explorar este principio mediante un ejemplo en C#.

Ejemplo sin la implementación del SRP

Supongamos que estamos construyendo un sistema de gestión de empleados, y tenemos una clase Employee que representa a un empleado. En esta clase, hemos incluido lógica para calcular el salario y enviar correos electrónicos a los empleados con sus recibos de pago:

public class Employee
{
    public string Name { get; set; }
    public decimal Salary { get; set; }

    public decimal CalculateSalary()
    {
        // Lógica de cálculo de salario
        // ...
    }

    public void SendSalaryEmail()
    {
        // Lógica para enviar el correo electrónico con el recibo de pago
        // ...
    }
}
Enter fullscreen mode Exit fullscreen mode

En este caso, la clase Employee tiene más de una razón para cambiar. Si alguna de las lógicas de cálculo de salario o envío de correo electrónico cambia, la clase Employee debe ser modificada. Esto viola el SRP, ya que debería tener una única responsabilidad.

Ejemplo implementando el SRP
Para seguir el SRP, podemos dividir las responsabilidades en clases separadas. Aquí, creamos una clase SalaryCalculator para el cálculo de salario y una clase EmailSender para enviar correos electrónicos:

public class Employee
{
    public string Name { get; set; }
    public decimal Salary { get; set; }
}

public class SalaryCalculator
{
    public decimal CalculateSalary(Employee employee)
    {
        // Lógica de cálculo de salario
        // ...
    }
}

public class EmailSender
{
    public void SendSalaryEmail(Employee employee)
    {
        // Lógica para enviar el correo electrónico con el recibo de pago
        // ...
    }
}
Enter fullscreen mode Exit fullscreen mode

Ahora, cada clase tiene una sola razón para cambiar. Si cambia la lógica de cálculo de salario, solo modificamos la SalaryCalculator. Si cambia la lógica de envío de correo electrónico, solo ajustamos la EmailSender.

Al seguir el SRP, nuestro código se vuelve más mantenible y flexible, y cada clase tiene un propósito claro. Esto facilita la extensión y modificación del sistema sin afectar otras partes del código.

Recuerda que el SRP es solo uno de los principios SOLID que promueve un diseño de código más limpio y eficiente. Integrar estos principios en tu desarrollo te ayudará a crear aplicaciones más sólidas y mantenibles. ¡Feliz codificación! 😊

Espero que esta publicación te ayude a comprender mejor el Principio de Responsabilidad Única en C# y cómo aplicarlo en tus proyectos. Si tienes alguna pregunta o comentario, no dudes en compartirlo. ¡Gracias por leer!

Top comments (0)