Sobes.tech
Junior — Middle

Можете ли да обясните какво представлява патърнът стратегия и как да го приложите в разработката на софтуер?

sobes.tech AI

Отговор от 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);

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