Mudança Divergente.
Você se vê tendo que alterar muitos métodos não relacionados ao fazer mudanças em uma classe. Por exemplo, ao adicionar um novo tipo de produto, você precisa alterar os métodos para encontrar, exibir e fazer pedidos de produtos.
##Sinais e sintomas
Você se vê tendo que alterar muitos métodos não relacionados ao fazer mudanças em uma classe. Por exemplo, ao adicionar um novo tipo de produto, você precisa alterar os métodos para encontrar, exibir e fazer pedidos de produtos.

class Order {
void applyVat2024() {}
void applyVat2025() {}
void formatEuInvoice() {}
void formatUsInvoice() {}
}##Causas do problema
Muitas vezes, essas modificações divergentes se devem a uma estrutura de programa ruim ou à “programação copia-e-cola”.
##Tratamento
Refatorar com
##Benefícios
-
Melhora a organização do código.
-
Reduz a duplicação de código.
-
Simplifica o suporte.