标题图借用 @老刘 https://zhuanlan.zhihu.com/p/91667659
业务中经常碰到if-else多分支使用,嵌套使用的情况,业务逻辑一复杂,代码就变得很难维护
,随便改几个字就报错,眼睛要看花,使用策略模式又感觉通用性不太强
于是在摸索中写了一个If()函数,可以在很大程度上可以改善If-else所造成的的代码难维护的问题
下面会结合一些业务场景介绍下基于自写If()函数是如何解决此类问题的,看能不能在一定程度帮助大家解决if-else的常见痛点
If() 函数介绍: 基于javascript实现,原理很简单就是条件分支都添加到了数组中,类似于队列,
基本概念:
//在javascript中
再说基本使用,免得一头雾水:
If
后面业务需求改变了.不管boolean如何都显示这个按钮,但进行其他业务操作
if
现在可以这样改
#
示范2 多分支使用:
other1
可以做逻辑检查和函数执行体的分离
#
使用If()函数修改后
...
这样做好处显而易见,抽象出来的数据如果依赖于多种状态代码是可以二次复用的,其次将
业务代码与复杂的分支结构进行了分离,让代码更好维护,结构更加美观清晰
如果业务逻辑足够简单的话还可以改成循环体使用
先把接口说一下
If
终极优化环节
#
#1 #2 #3 三段代码等价
示范3 解决-> 嵌套多分支的情况:
#
使用If函数修改
#
推荐:
#
业务逻辑简单也可用循环优化:
#
#1 #2 #3 #4等价
延迟使用:
const
与函数体分离:
const
条件作为一个函数体使用+传递参数
If
进阶使用
使用参数传递跳出无限递归:
有时候我们要根据一个数据的状态发送一段信息,等待s秒后又要添加一段信息
let
现在这样改
const
串联使用--随意的功能扩展
有时候也许需求经常增加和删除怎么改呢?
function
If函数这样改
If
链式调用 :
If
异步使用+参数传递+延迟检查+重复利用
const