Sobes.tech
Junior — Middle
97

Можете ли да говорите о вашем искуству у имплементацији патерна стратегије у пројектима?

Компаније где су питане
СБЕРСБЕР

Одговор од АИ

sobes.tech АИ

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

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

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