Sobes.tech
Junior — Middle

Pode explicar o que é o padrão estratégia e como aplicá-lo no desenvolvimento de software?

sobes.tech IA

Resposta da IA

O padrão estratégia (Strategy) é um padrão comportamental de design que permite definir uma família de algoritmos, encapsulá-los cada um e torná-los intercambiáveis. Isso ajuda a alterar o comportamento de um objeto em tempo de execução sem modificar seu código.

Aplicação:

  • Crie uma interface de estratégia com um método que descreva o algoritmo.
  • Implemente várias classes que implementem essa interface com diferentes algoritmos.
  • Na classe de contexto, armazene uma referência ao objeto estratégia e chame o método do algoritmo através dela.

Exemplo em Java:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Pagamento de " + amount + " com cartão de crédito");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Pagamento de " + amount + " via PayPal");
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

    public void setPaymentStrategy(PaymentStrategy strategy) {
        this.paymentStrategy = strategy;
    }

    public void checkout(int amount) {
        paymentStrategy.pay(amount);
    }
}

// Uso:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

cart.setPaymentStrategy(new PayPalPayment());
cart.checkout(500);

Este enfoque simplifica a extensão e a manutenção do código, permitindo adicionar novos algoritmos sem modificar o código existente.