设计模式之策略模式

策略模式

策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让方法的变化不会影响到使用算法的客户

模式作用:

  1. 所有的这些算法都是做相同的事情,只是实现不同。
  2. 以相同的方式调用所有的方法,减少了各种算法类与使用算法类之间的耦合。
  3. 单独定义算法类,也方便了单元测试。

注意事项:

  1. 不仅可以封装算法,也可以用来封装几乎任何类型的规则,是要在分析过程中需要在不同时间应用不同的业务规则,就可以考虑是要策略模式来处理各种变化。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!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>