1. 策略模式

策略模式定义一系列的算法,把它们封装起来,并且可以互相替换。

var strategies = {

isNonEmpty: function(value,errMsg){

if(value === ''){

return errMsg;

}

},

minLength:function(value,length,errMsg){

if(value.length < length){

return errMsg;

}

}

}

var validator = function(){

this.cache = [];

}

validator.prototype.add = function(dom,rule,errMsg){

var array = rule.split(':');

this.cache.push(function(){

var strategy = array.shift();

array.unshift(dom.value);

array.push(errMsg);

return strategies[strategy].apply(dom, array);

});

}

validator.prototype.validate = function(){

for(var i =0,validatorFunc;validatorFunc=this.cache[i++];){

var msg = validatorFunc();

if(msg){

return msg;

}

}

}

validator.add(form.name,'isNonEmpty','用户名不能为空');

validator.add(form.name,'minLength:10','用户名不能为空');

validator.validate();

转载于:https://www.cnblogs.com/SLchuck/p/4869711.html

3.js模式-策略模式相关推荐

  1. js使用策略模式实现表单验证

    使用策略模式实现表单验证 1.什么是策略模式 策略模式说起来很高大上,其实现实生活中很常见.比如,你要从老家去北京故宫游玩,可选的出行方式有坐火车.开车自驾.坐飞机等几种方式, 至于选择哪种出现方式要 ...

  2. 设计模式 — 行为型模式 — 策略模式

    目录 文章目录 目录 策略模式 应用场景 代码示例 策略模式 策略模式中,首先定义了一系列不同的算法,并把它们一一封装起来,然后在策略类中,使这些算法可以相互替换.这意味着,让一个类的行为(算法)可以 ...

  3. 23种模式——策略模式

    目录 策略模式 策略模式的收银软件 策略模式的特点 使用场景 优缺点 策略模式和工厂模式的结合 策略(Strategy)模式 本质:分离算法,选择实现. 策略模式:针对一组算法,将每一个算法封装到具有 ...

  4. 模板模式+策略模式优化

    前言 写在最前面,最近在项目中发现一部分代码,可以用模板模式+策略模式来进行优化. 背景 业务中,系统中对订单状态的处理,需要发送对用户短信发送或者微信推送等操作. 发送短信和微信推送钱,需要处理逻辑 ...

  5. 工厂模式+策略模式组合实现电商促销活动

    项目中大多数设计模式都是组合使用的,对于单个设计模式小伙伴们可以去菜鸟教程学习一下,下面使用 Java 实现的工厂模式+策略模式组合实现电商促销 首先,根据策略的不同,一些需要优惠计算,一些需要普通计 ...

  6. java-抽象工厂模式+工厂方法模式+策略模式简单应用实战(登录场景)

    前言 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式 ...

  7. 工厂模式+策略模式+反射机制解决系统功能模块相似的问题

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 背景 痛点 一.如何根据不同条件获取不同的数据库Mapper? 二.如何根据不同条件创建相应的数据库实体对象? 总结 背景 ...

  8. 进阶学习之旅-设计模式之(委派模式策略模式)

    文章目录 1.课程学习目标 2.内容定位 3.委派模式详解 3.1委派模式的定义 3.2 demo案例 3.2.1模拟Boss指派任务给Leader 由员工完成任务执行 3.2.2 模拟spring ...

  9. springboot 使用工厂模式+策略模式替代多重if 案例

    项目背景: 由于做的是物联网项目,现在需要实现的是网关入网+子设备注册:网关有3个逻辑,分别为首次入网.解绑后同一个人入网(恢复).解绑后换人入网(换人).子设备注册: 原先写法是: if(type ...

最新文章

  1. 机器视觉图像采集卡的功能与应用
  2. 初一模拟赛总结(3.30)
  3. 16bit随机数生成matlab,关于matlab生成随机数
  4. 阿里、美团、滴滴产品经理共述:产品经理的“乐”与“伤”
  5. jquery prop(“outerHTML“) 获取当前标签和标签内部的html 代码
  6. 蚂蚁的开放:想办法摸到10米的篮筐 1
  7. 几种常见的服务器攻击类型
  8. 【思维导图】LAMPer技能树
  9. Spec2006使用说明
  10. 【程序员的浪漫】花式表白
  11. 用java判断三角形类型_判断三角形类型
  12. 独家专访李林 | 回归火币后的一年
  13. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02EC20模组硬件供电和开关机复位操作
  14. VMware安装mac的流程及unlocker 报错 、出现的一些问题解决方案整理
  15. C++11 Features in Visual C++ 11 - VS2010对C++11特性支持的情况
  16. 基于java的物联网架构实现
  17. 九种js弹出对话框的方法
  18. WIN7下ADS使用详解
  19. 计算机适合文科女生的专业,适合文科女生报考的专业有哪些
  20. linux 服务器 物联网吗,你知道为什么物联网需要LPWAN吗?

热门文章

  1. php运城,运城php培训
  2. android最新知识点总结,学习android之 知识点总结
  3. postgis安装_从零开始,构建电子地图网站:0_2_数据处理postgis
  4. 系统英伟达gpu驱动卸载_绕过CPU,英伟达让GPU直连存储设备
  5. java mongodb 返回所有field_JAVA高级之反射
  6. 详细讲解设计跳表的三个步骤(查找、插入、删除)
  7. 数字图像课程工程大作业分析
  8. TAFE的完整形式是什么?
  9. Java GregorianCalendar computeTime()方法与示例
  10. ffmpeg 解码音频(aac、mp3)输出pcm文件