zoukankan      html  css  js  c++  java
  • 3.js模式-策略模式

    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();

  • 相关阅读:
    初级程序员面试不靠谱指南(三)
    [细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;
    20110310日记wmh
    SliverLight 控件属性的赋值方式
    20110309wmh日记
    20110308wmh日记
    20110307wmh日记
    STOAdiary20110314完成的任务
    20110313wmh日记
    20110311wmh日记
  • 原文地址:https://www.cnblogs.com/SLchuck/p/4869711.html
Copyright © 2011-2022 走看看