策略模式定义了一系列算法,封装了每个算法,并使它们可以互换。
在此示例中,我们有一组可应用于购物车的折扣。我们可以传递将应用于构造函数的函数,并以这种方式更改折扣金额。
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
结论
当您有许多相似的类,仅在执行某些行为的方式上有所不同时,请使用此模式。
希望您觉得它有帮助。感谢您的阅读。 ?
让我们联系吧!你可以在以下位置找到我:
以上是JavaScript 设计模式 - 行为 - 策略的详细内容。更多信息请关注PHP中文网其他相关文章!