策略模式概念
策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,
此模式让算法的变化不会影响到使用算法的客户。
策略模式作用:
1.所有的这些算法都是做相同的事情,只是实现不同
2.以相同的方式调用所有的方法,减少了各种算法类与使用算法类之间的耦合
3.单独定义算法类,也方便了单元测试
注意事项
1.不仅可以封装算法,也可以用来封装几乎任何类型的规则,是要在分析过程中
需要在不同时间应用不同的业务规则,就可以考虑是要策略模式来处理各种变化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
var $input = $('#input').val();
/* var val = {
isEmpty:function(){
return false;
},
isTel:function(){
return true;
}
}
var ise = val.isEmpty($input.val());
var isTel=val.isTel($input.val());
if(!ise&&isTel){
alert('通过审核');
}
*/
//真正的策略模式
$.input.val({
isEmpty:false,
isTel:true
})
$('div').animate({100px},100,'策略');
</script>
</body>
</html>
本文学习自常见设计模式视频