Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, kas ir stratēģijas modelis un kā to piemērot programmatūras izstrādē?

sobes.tech AI

Atbilde no AI

Stratēģijas paraugs (Strategy) ir uzvedības dizaina paraugs, kas ļauj definēt algoritmu ģimeni, katru no tiem inkapsulēt un padarīt tos aizvietojamus. Tas palīdz mainīt objekta uzvedību izpildes laikā bez tā koda maiņas.

Pielietojums:

  • Izveidojiet stratēģijas interfeisu ar metodi, kas apraksta algoritmu.
  • Implementējiet vairākas klases, kas realizē šo interfeisu ar dažādiem algoritmiem.
  • Konteksta klasē saglabājiet atsauci uz stratēģijas objektu un izsauciet algoritma metodi caur to.

Piemērs Java:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Apmaksa " + amount + " ar kredītkarti");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Apmaksa " + amount + " caur PayPal");
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

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

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

// Piemērs lietošanai:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

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

Šis pieejas veids atvieglo koda paplašināšanu un uzturēšanu, ļaujot pievienot jaunus algoritmus bez esošā koda modificēšanas.