Назад к вопросам
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);
Такой подход упрощает расширение и поддержку кода, позволяя добавлять новые алгоритмы без изменения существующего кода.