Cambio divergente.
Te ves obligado a modificar muchos métodos no relacionados cuando haces cambios en una clase. Por ejemplo, al añadir un nuevo tipo de producto tienes que cambiar los métodos para encontrar, mostrar y pedir productos.
##Signos y síntomas
Te ves obligado a modificar muchos métodos no relacionados cuando haces cambios en una clase. Por ejemplo, al añadir un nuevo tipo de producto tienes que cambiar los métodos para encontrar, mostrar y pedir productos.

class Order {
void applyVat2024() {}
void applyVat2025() {}
void formatEuInvoice() {}
void formatUsInvoice() {}
}##Causas del problema
A menudo, estas modificaciones divergentes se deben a una mala estructura del programa o a la «programación copypasta».
##Tratamiento
Refactorizar con
##Beneficios
-
Mejora la organización del código.
-
Reduce la duplicación de código.
-
Simplifica el mantenimiento.