设计模式-策略模式-JS

策略模式解释:

使用策略模式去除大量重复的if-else,将各种逻辑写在不同的对象中,增加逻辑只需要去维护此对象即可。

表单校验类策略例子:

//表单策略模式校验类
class Strategy {
  //策略对象
  rules = {
    isNumber: function (value) {
      if (/\d+/.test(value)) {
        return "数字验证通过";
      } else {
        return "只能输入数字";
      }
    },
    required: function (value) {
      if (value === "" || !value) {
        return "不可为空";
      } else {
        return "不为空验证通过";
      }
    },
    isString: function (value) {
      if (typeof value === "string") {
        return "输入为字符串验证通过";
      } else {
        return "必须输入字符串";
      }
    },
  };

  /**
  校验策略的函数
  */
  validator(value, myrules) {
    if (myrules.length > 0) {
      myrules.forEach((rule) => {
        console.log(this.rules[rule]());
      });
    }
  }
}

const myTest = new Strategy();
myTest.validator("1", ["isString"]);
myTest.validator(111, ["required", "isNumber"]);
myTest.validator(null, ["required"]);

控制台打印:
设计模式-策略模式-JS_第1张图片

你可能感兴趣的:(设计模式,策略模式,javascript)