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.