Sobes.tech
Back to questions
Junior — Middle
72

Могли бы вы рассказать о своем опыте реализации паттерна стратегия в проектах?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Паттерн стратегия я применял для реализации гибкой логики расчёта скидок в интернет-магазине. Вместо жестко прописанных условий, каждая стратегия скидки была оформлена в отдельном классе, реализующем общий интерфейс. Это позволяло легко добавлять новые типы скидок без изменения существующего кода.

Пример на 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);
    }
}

Такой подход улучшил расширяемость и тестируемость кода.