Saltar al contenido principal

Single Responsibility Principle (SRP)

Definición: Una clase debe tener una única razón para cambiar. Code Smell Relacionado:

  • Clase Grande
  • Método Largo
  • Mezcla de Niveles de Abstracción

Técnicas de Refactorización:

  • Extract Class: Dividir una clase en dos o más clases con responsabilidades más específicas
  • Extract Method: Dividir un método largo en varios métodos más pequeños y cohesivos
  • Move Method/Field: Mover métodos o campos a la clase correcta
public class Order {
private List<OrderItem> items;
private Customer customer;

public void calculateTotals() { /*...*/ }
public void saveToDatabase() { /*...*/ }
public void generateInvoice() { /*...*/ }
public void sendConfirmationEmail() { /*...*/ }
}
public class Order {
private List<OrderItem> items;
private Customer customer;

public double calculateTotals() { /*...*/ }
}

public class OrderRepository {
public void save(Order order) { /*...*/ }
public Order findById(long id) { /*...*/ }
}

public class InvoiceGenerator {
public Invoice generateInvoice(Order order) { /*...*/ }
}

public class OrderNotifier {
public void sendConfirmationEmail(Order order) { /*...*/ }
}