Junior — Middle
Poderia falar sobre sua experiência na implementação do padrão estratégia em projetos?
sobes.tech IA
Resposta da IA
O padrão estratégia que apliquei foi para implementar uma lógica flexível de cálculo de descontos numa loja online. Em vez de condições codificadas rigidamente, cada estratégia de desconto foi definida numa classe separada que implementava uma interface comum. Isto permitia adicionar facilmente novos tipos de descontos sem alterar o código existente.
Exemplo em Java:
interface DiscountStrategy {
double applyDiscount(double price);
}
class NoDiscount implements DiscountStrategy {
public double applyDiscount(double price) {
return price;
}
}
class PercentageDiscount implements DiscountStrategy {
private double percent;
public PercentageDiscount(double percent) {
this.percent = percent;
}
public double applyDiscount(double price) {
return price * (1 - percent / 100);
}
}
class ShoppingCart {
private DiscountStrategy discountStrategy;
public ShoppingCart(DiscountStrategy discountStrategy) {
this.discountStrategy = discountStrategy;
}
public double calculatePrice(double price) {
return discountStrategy.applyDiscount(price);
}
}
Este método melhorou a escalabilidade e a testabilidade do código.