策略模式
策略模式定義了算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓方法的變化不會(huì)影響到使用算法的客戶
模式作用:
- 所有的這些算法都是做相同的事情计雌,只是實(shí)現(xiàn)不同。
- 以相同的方式調(diào)用所有的方法妈橄,減少了各種算法類與使用算法類之間的耦合。
- 單獨(dú)定義算法類沙热,也方便了單元測(cè)試篙贸。
注意事項(xiàng):
- 不僅可以封裝算法爵川,也可以用來封裝幾乎任何類型的規(guī)則,是要在分析過程中需要在不同時(shí)間應(yīng)用不同的業(yè)務(wù)規(guī)則兔甘,就可以考慮是要策略模式來處理各種變化洞焙。
例子:
<!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>