JavaScript 设计模式 - 行为 - 策略
Aug 16, 2024 pm 06:36 PM策略模式定义了一系列算法,封装了每个算法,并使它们可以互换。
在此示例中,我们有一组可应用于购物车的折扣。我们可以传递将应用于构造函数的函数,并以这种方式更改折扣金额。
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
结论
当您有许多相似的类,仅在执行某些行为的方式上有所不同时,请使用此模式。
希望您觉得它有帮助。感谢您的阅读。 ?
让我们联系吧!你可以在以下位置找到我:
- 中: https://medium.com/@nhannguyendevjs/
- 开发:https://dev.to/nhannguyendevjs/
- 哈希节点:https://nhannguyen.hashnode.dev/
- Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
- X(以前的 Twitter):https://twitter.com/nhannguyendevjs/
- 请我喝杯咖啡: https://www.buymeacoffee.com/nhannguyendevjs
以上是JavaScript 设计模式 - 行为 - 策略的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)