关注↑↑[爱开发]
每晚10点,捕获技术思考和创业资源洞察
if else作为每种编程语言都不可或缺的条件语句,在编程时会大量被使用。 但要是稍微不注意,就会在开发过程中出现大量if else的场景,有的嵌套七八个,甚至更多,很显然这样的代码非常不优雅,可读性也不是很好,后期维护难度也大大提高。文|洪生鹏
本文旨在抛砖引玉,具体实施方案需要自己在实践中动手去尝试,不断尝试,不断改进调优。
if else作为每种编程语言都不可或缺的条件语句,在编程时会大量被使用。但要是稍微不注意,就会在开发过程中出现大量if else的场景,有的嵌套七八个,甚至更多,很显然这样的代码非常不优雅,可读性也不是很好,后期维护难度也大大提高。
有的时候,为了方便,我们在程序中会有很多分支,每个分支下面的代码又有一些相对应的逻辑,相信大多数人倾向用 if-else/switch-case 去实现。有的干脆直接把实现的代码放在 if-else/switch-case 的分支之下,譬如这样:
switch ( type ) {
case 1:
……
break;
case 2:
……
break;
case 3:
……
break;
default:
break;
}
毋庸置疑,这样的代码不仅冗长,读起来也很吃力。稍微做得好一点的会把这些逻辑封装成函数然后在分支中调用,类似这样:
switch(type) {
case 1:
fun1();
break;
case 2:
fun2();
break;
case 3:
fun3();
break;
default:
break;
}
即使这样比起第一种相对清晰些,但严格来说,这种也是面向过程思维的编程,没有涉及到设计模式。违背开闭原则,而且随着 switch-case 分支的增多,代码也会越来越冗长。
消除出现大量的if else,其实已经有成熟的模式去消除诸多的 if-else/switch-case 分支的方案了。
譬如策略模式,工厂模式、枚举单例模式。将else代码放在函数前面,尽早返回。譬如
if(condition){
//do something
}else{
//do something
}
建议直接:
if(!condition){
//do something
}
当 if-else/switch-case 的分支超过三个、且分支代码相似且冗长的情况下我们尝试考虑使用设计模式,避免重复的搬砖。时间是宝贵,应该用在刀刃上,不应该都花在这if else上。
不知对此你是怎么看待的,欢迎交流!
从《色戒》,看人性的欲望
喜欢本文,点个[在看],分享给朋友