码迷,mamicode.com
首页 > 编程语言 > 详细

【javascript】javasrcipt设计模式之策略模式

时间:2018-03-21 18:31:17      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:表单   date   电话号码   ali   模式   应用   集合   script   name   

策略模式支持在运行时由使用者选择合适的算法,对于使用者而言不用关心背后的具体事项,而使用者自动根据当前程序执行的上下文和配置,从已有的算法列表中选择出合适的算法来处理当前任务。

1.要解决的问题

2.如何实现

3.在开源框架和类库中的使用

4.总结

要解决的问题

策略模式同样解决的是解耦的问题,目的是使调用的客户端与需要调用的算法解耦开来,保证算法的内部实现的更改不会影响到客户端的调用。当然这些算法往往需要封装为较为通用的。这样一来可以自由的从算法几种选取需要调用的合适的算法,就像搭积木一样,而算法也可以独立出来单测。

如何实现(应用场景之一表单验证

对于一个表单,各个字段的输入值格式并不唯一,有的是数字,有的是电话号码。因而他们可能有各自都有的验证的要求。

策略模式是可复用的,比如多个字段可能都要求验证非空,这时,我们可以把场景的验证策略抽象为一个策略集合

使用者需要对表单数据进行校验时,只需要传入数据以及制定各个字段的验证策略,就可以给出相应的验证结果了,从而将表达你的处理和验证逻辑分离开来。

//  将校验的数据
var data = {
name : hh,
gender: 1
}
//  校验规则配置
validator.config = {
name:{
text: ‘姓名‘,
validators: [‘isNotEmpty‘,‘isValidName‘]
},
identity:{
text:‘身份证号‘,
validators:[‘isnotEmpty‘,‘isValidIdentity‘]
}
}
//  调用获得校验结果
validator.validate(data);

 

【javascript】javasrcipt设计模式之策略模式

标签:表单   date   电话号码   ali   模式   应用   集合   script   name   

原文地址:https://www.cnblogs.com/teemor/p/8618521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!