”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > JavaScript 设计模式 - 行为 - 策略

JavaScript 设计模式 - 行为 - 策略

发布于2024-11-01
浏览:483

JavaScript Design Patterns - Behavioral - Strategy

策略模式定义了一系列算法,封装了每个算法,并使它们可以互换。

在此示例中,我们有一组可应用于购物车的折扣。我们可以传递将应用于构造函数的函数,并以这种方式更改折扣金额。

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/
  • Hashnode:https://nhannguyen.hashnode.dev/
  • Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
  • X(原 Twitter):https://twitter.com/nhannguyendevjs/
  • 请我喝杯咖啡: https://www.buymeacoffee.com/nhannguyendevjs
版本声明 本文转载于:https://dev.to/nhannguyendevjs/javascript-design-patterns-behavioral-strategy-152d?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3