Back to questions
СБЕР
Junior — Middle
72
Могли бы вы рассказать о своем опыте реализации паттерна стратегия в проектах?
Companies where asked
Answer from AI
sobes.tech AI
Паттерн стратегия я применял для реализации гибкой логики расчёта скидок в интернет-магазине. Вместо жестко прописанных условий, каждая стратегия скидки была оформлена в отдельном классе, реализующем общий интерфейс. Это позволяло легко добавлять новые типы скидок без изменения существующего кода.
Пример на Java:
interface DiscountStrategy {
double applyDiscount(double price);
}
class NoDiscount implements DiscountStrategy {
public double applyDiscount(double price) {
return price;
}
}
class PercentageDiscount implements DiscountStrategy {
private double percent;
public PercentageDiscount(double percent) {
this.percent = percent;
}
public double applyDiscount(double price) {
return price * (1 - percent / 100);
}
}
class ShoppingCart {
private DiscountStrategy discountStrategy;
public ShoppingCart(DiscountStrategy discountStrategy) {
this.discountStrategy = discountStrategy;
}
public double calculatePrice(double price) {
return discountStrategy.applyDiscount(price);
}
}
Такой подход улучшил расширяемость и тестируемость кода.