Sobes.tech
Junior — Middle

Meg tudná magyarázni, mi az a stratégia minta, és hogyan alkalmazható a szoftverfejlesztésben?

sobes.tech MI

Válasz az MI-től

A stratégia minta (Strategy) egy viselkedési tervezési minta, amely lehetővé teszi algoritmuscsaládok meghatározását, mindegyikük inkapszulálását és cserélhetőségüket. Ez segít megváltoztatni egy objektum viselkedését futásidőben anélkül, hogy módosítaná a kódját.

Alkalmazás:

  • Hozzon létre egy stratégia interfészt egy algoritmust leíró módszerrel.
  • Valósítson meg több osztályt, amelyek ezt az interfészt különböző algoritmusokkal valósítják meg.
  • A kontextus osztályban tartson egy hivatkozást a stratégia objektumra, és hívja meg az algoritmus módszerét rajta keresztül.

Java példakód:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Fizetés " + amount + " hitelkártyával");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Fizetés " + amount + " PayPalon keresztül");
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

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

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

// Használat:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

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

Ez a megközelítés megkönnyíti a kód bővítését és karbantartását, lehetővé téve új algoritmusok hozzáadását a meglévő kód módosítása nélkül.