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("Плащане " + amount + " чрез PayPal");
}
}
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);
Този подход улеснява разширяването и поддръжката на кода, като позволява добавяне на нови алгоритми без промяна на съществуващия код.