Sobes.tech
Senior

Quais são as vantagens do padrão Estratégia ao refatorar este código?

sobes.tech IA

Resposta da IA

O padrão Estratégia permite externalizar as variações de comportamento (algoritmos) em classes separadas, o que oferece várias vantagens ao refatorar:

  • Melhoria na legibilidade e manutenção do código. A lógica é dividida em estratégias separadas, tornando o código mais simples e compreensível.
  • Flexibilidade e extensibilidade. Pode-se adicionar uma nova estratégia sem alterar o código existente, o que reduz o risco de erros.
  • Evita operadores condicionais complicados. Em vez de múltiplos if/else ou switch, pode-se usar polimorfismo.
  • Aumenta a testabilidade. Cada estratégia pode ser testada separadamente.

Exemplo:

interface SortingStrategy {
    void sort(List<Integer> list);
}

class QuickSort implements SortingStrategy {
    public void sort(List<Integer> list) {
        // implementação do ordenamento rápido
    }
}

class MergeSort implements SortingStrategy {
    public void sort(List<Integer> list) {
        // implementação do ordenamento por fusão
    }
}

class Sorter {
    private SortingStrategy strategy;
    public Sorter(SortingStrategy strategy) {
        this.strategy = strategy;
    }
    public void sort(List<Integer> list) {
        strategy.sort(list);
    }
}

Assim, o padrão Estratégia ajuda a tornar o código mais modular, flexível e fácil de manter.