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.