深入理解javascript系列(33):设计模式之策略模式详解

深入理解javascript系列(33):设计模式之策略模式详解

ID:30517600

大小:17.57 KB

页数:7页

时间:2018-12-31

深入理解javascript系列(33):设计模式之策略模式详解_第1页
深入理解javascript系列(33):设计模式之策略模式详解_第2页
深入理解javascript系列(33):设计模式之策略模式详解_第3页
深入理解javascript系列(33):设计模式之策略模式详解_第4页
深入理解javascript系列(33):设计模式之策略模式详解_第5页
资源描述:

《深入理解javascript系列(33):设计模式之策略模式详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解深入理解JavaScript系列(33):设计模式之策略模式详解  这篇文章主要介绍了深入理解JavaScript系列(33):设计模式之策略模式详解,策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户,需要的朋友可以参考下  介绍  策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变

2、化不会影响到使用算法的客户。  正文  在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段代码以增加逻辑,而且在进行单元测试的时候也会越来越复杂,代码如下:  代码如下:  validator={  validate:function(value,type){  switch(type){  case'isNonEmpty':  {对党的认识也有了进一步的提高。才真正体会到了

3、中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解  returntrue;//NonEmpty验证结果  }  case'isNumber':  {  returntrue;//Number验证结果  break;  }  case'isAlphaNum':  {  returntrue;//AlphaNum验证结果  }  def

4、ault:  {  returntrue;  }  }  }  };  //测试  alert(validator.validate("123","isNonEmpty"));对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解  那如何来避免上述代码中的问题呢,根据策略模式,我们可以将相同的

5、工作代码单独封装成不同的类,然后通过统一的策略处理类来处理,OK,我们先来定义策略处理类,代码如下:  代码如下:  varvalidator={  //所有可以的验证规则处理类存放的地方,后面会单独定义  types:{},  //验证类型所对应的错误消息  messages:[],  //当然需要使用的验证类型  config:{},  //暴露的公开验证方法  //传入的参数是key=>value对  validate:function(data){  vari,msg,type,checker,

6、result_ok;  //清空所有的错误信息  this.messages=[];  for(iindata){  if(data.hasOwnProperty(i)){  type=this.config[i];//根据key查询是否有存在的验证规则  checker=this.types[type];//对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习

7、,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解获取验证规则的验证类  if(!type){  continue;//如果验证规则不存在,则不处理  }  if(!checker){//如果验证规则类不存在,抛出异常  throw{  name:"ValidationError",  message:"Nohandlertovalidatetype"+type  };  }  result_ok=checker.validate(data[i]);//使用查到到的单个验证类进行验证

8、  if(!result_ok){  msg="Invalidvaluefor*"+i+"*,"+checker.instructions;  this.messages.push(msg);  }  }  }  returnthis.hasErrors();  },  //helper对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。