Шаблон стратегия определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми.
В этом примере у нас есть набор скидок, которые можно применить к корзине покупок. Мы можем передать функцию, которую применим к конструктору, и таким образом изменить сумму скидки.
class ShoppingCart { constructor(discount) { this.discount = discount; this.amount = 0; } checkout() { return this.discount(this.amount); } setAmount(amount) { this.amount = amount; } } function guest(amount) { return amount; } function regular(amount) { return amount * 0.9; } function premium(amount) { return amount * 0.8; } export { ShoppingCart, guest, regular, premium };
Полный пример здесь? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js
Заключение
Используйте этот шаблон, если у вас много похожих классов, которые отличаются только тем, как они выполняют определенное поведение.
Надеюсь, это было вам полезно. Спасибо за чтение. ?
Давайте соединяться! Вы можете найти меня:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3