策略模式
策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让方法的变化不会影响到使用算法的客户
模式作用:
- 所有的这些算法都是做相同的事情,只是实现不同。
- 以相同的方式调用所有的方法,减少了各种算法类与使用算法类之间的耦合。
- 单独定义算法类,也方便了单元测试。
注意事项:
- 不仅可以封装算法,也可以用来封装几乎任何类型的规则,是要在分析过程中需要在不同时间应用不同的业务规则,就可以考虑是要策略模式来处理各种变化。
例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>策略模式</title>
<script src="http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>
</head>
<body>
<input type="text" id="input">
<script>
var $input=$('#input');
var check={
isEmpty:function(argument){
//逻辑代码
return false;
},
isTel:function(){
//逻辑代码
return true;
}
}
var ise=check.isEmpty($input.val());
var isTel=check.isTel($input.val());
console.log(ise);//false;
console.log(isTel);//true
</script>
</body>
</html>