Sobes.tech
Назад к вопросам
Junior — Middle
64

Можете ли вы объяснить, что представляет собой паттерн стратегии и как его применять в разработке программного обеспечения?

Ответ от нейросети

sobes.tech AI

Паттерн стратегия (Strategy) — это поведенческий шаблон проектирования, который позволяет определить семейство алгоритмов, инкапсулировать каждый из них и делать их взаимозаменяемыми. Это помогает менять поведение объекта во время выполнения программы без изменения его кода.

Применение:

  • Создайте интерфейс стратегии с методом, описывающим алгоритм.
  • Реализуйте несколько классов, которые реализуют этот интерфейс с разными алгоритмами.
  • В классе контекста храните ссылку на объект стратегии и вызывайте метод алгоритма через нее.

Пример на Java:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Оплата " + amount + " с помощью кредитной карты");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Оплата " + amount + " через PayPal");
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

    public void setPaymentStrategy(PaymentStrategy strategy) {
        this.paymentStrategy = strategy;
    }

    public void checkout(int amount) {
        paymentStrategy.pay(amount);
    }
}

// Использование:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

cart.setPaymentStrategy(new PayPalPayment());
cart.checkout(500);

Такой подход упрощает расширение и поддержку кода, позволяя добавлять новые алгоритмы без изменения существующего кода.