Sobes.tech
Junior — Middle

Puteți explica ce reprezintă pattern-ul strategie și cum se aplică în dezvoltarea software-ului?

sobes.tech AI

Răspuns de la AI

Modelul de strategie (Strategy) este un pattern comportamental de proiectare care permite definirea unei familii de algoritmi, încapsularea fiecăruia dintre ei și făcându-i interschimbabili. Acest lucru ajută la schimbarea comportamentului unui obiect în timpul execuției fără a modifica codul său.

Aplicare:

  • Creați o interfață de strategie cu o metodă care descrie algoritmul.
  • Implementați mai multe clase care implementează această interfață cu algoritmi diferiți.
  • În clasa de context, păstrați o referință la obiectul strategie și apelați metoda algoritmului prin intermediul acesteia.

Exemplu în Java:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Plată de " + amount + " cu cardul de credit");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Plată de " + amount + " prin PayPal");
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

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

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

// Utilizare:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

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

Această abordare simplifică extinderea și întreținerea codului, permițând adăugarea de noi algoritmi fără a modifica codul existent.