zoukankan      html  css  js  c++  java
  • JavaScript 设计模式-策略模式

    策略模式

    • 策略模式定义一系列的算法,将每一个算法封装起来,并让他们可以相互替换
    • 实现方法定义一组可变的策略类封装具体算法,定义一组不变的环境类将请求委托给某一个策略类
    • 使用场景适用于业务场景中需要判断多种条件,甚至包含复杂条件嵌套的,可以使用策略模式来提升代码的可维护性和可读性。比如支付,博客权限校验
    // 定义策略类
    var PaymentMethodStrategy = {
      BankAccount: function (money) {
        return money > 50 ? money * 0.7 : money
      },
      CreditCard: function (money) {
        return money * 0.8
      },
      Alipay: function (money) {
        return money
      }
    }
    
    // 运行函数
    const userPay = function (selectedStrategy, money) {
      return PaymentMethodStrategy[selectedStrategy](money)
    }
    
    console.log('银行卡支付价格为:' + userPay('BankAccount', 100)); // 70
    console.log('支付宝支付价格为:' + userPay('Alipay', 100)); // 100
    console.log('信用卡支付价格为:' + userPay('CreditCard', 100)); // 80
    
    Keep learning
  • 相关阅读:
    python day1
    Vue与react的择决
    CommonJS规范
    js面向对象的程序设计
    正则匹配所有的a标签
    js-静态、原型、实例属性
    js中参数不对应问题
    sublime常用快捷键
    JSON.parse()和JSON.stringify()
    setAttribute()
  • 原文地址:https://www.cnblogs.com/leslie1943/p/13503240.html
Copyright © 2011-2022 走看看