if else 优化之策略模式
if else 太多,嵌套太深,已然成为我们搬砖路上经常遇到的问题。最近在项目上使用策略模式,有助于优化嵌套的代码,使结构更加清晰。
策略模型
什么是策略模式?
定义:通过定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。
什么意思,实际上就是把 if 分支用函数封装成一个个代码块,对方法行为进行抽象,而不关注每个代码块的细节,这就可以算是一个简单的策略模式。
例子
根据请求返回码做出不同操作
//if else版
if(res){
if(res.returnCode == '0'){
do something 0
}else if(res.returnCode == '001'){
do something 001
}else if(res.returnCode == '010'){
do something 010
}else if(res.returnCode == '100'){
do something 010
}else{
do something else2
}
}else{
do something else1
}
如果分支越来越多,代码会很难看并且逻辑也不清晰
//策略模式
if(!res){
do something else1
return true;
}
var action = {
'0&#