Sobes.tech
Junior — Middle

Жобаларда стратегия паттернін жүзеге асыру тәжірибеңіз туралы айта аласыз ба?

sobes.tech AI

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);
    }
}

Мұндай тәсіл кодтың кеңейтілімділігі мен тестілеу мүмкіндігін жақсартты.