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

Паттерн стратегия я применял для реализации гибкой логики расчёта скидок в интернет-магазине.

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее