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.