Sobes.tech
Junior — Middle

Стратегия үлгүсү деген эмне жана аны программалык камсыздоону иштеп чыгууда кантип колдонуу керектигин түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Стратегия үлгүсү (Strategy) — бул программалоодо жүрүм-турум үлгүсү, ал алгоритмдердин үй-бүлөсүн аныктоого, ар бирин инкапсуляциялоого жана алмаштырылуучу кылууга мүмкүндүк берет. Бул объекттин жүрүм-турумун ишке ашыруу учурунда өзгөртүүгө жардам берет жана анын кодун өзгөртпөстөн.

Колдонуу:

  • Алгоритмду сүрөттөгөн ыкманы камтыган стратегия интерфейсин түзүңүз.
  • Бул интерфейсти ар башка алгоритмдер менен ишке ашыруучү бир нече классты иштеп чыгыңыз.
  • Контекст класста стратегия объектисине шилтемени сактаңыз жана алгоритмдин ыкмасын анын аркылуу чакырыңыз.

Мисал Javaда:

interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Кредит картасы менен төлөө: " + amount);
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("PayPal аркылуу төлөө: " + amount);
    }
}

class ShoppingCart {
    private PaymentStrategy paymentStrategy;

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

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

// Колдонуу:
ShoppingCart cart = new ShoppingCart();
cart.setPaymentStrategy(new CreditCardPayment());
cart.checkout(1000);

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

Бул ыкма кодду кеңейтүүнү жана тейлөөдө жеңилдетет, жаңы алгоритмдерди кошууга мүмкүндүк берет, ал эми бардыгын өзгөртпөстөн.