欢迎光临散文网 会员登陆 & 注册

if-else有大学问

2022-12-11 23:40 作者:凯小吧  | 我要投稿

if-else


switch

 


以上两种是在开发过程中比较常用的,适用于代码量小,逻辑简单。一旦代码长度偏长,逻辑复杂时,闭眼都能想象,满篇幅的if-else。一个是影响了可读性,另一个改起来也特别费劲,生怕动一某个变量影响整个代码块的逻辑。可维护性低。

策略模式

图片
图片

策略模式在这里简单理解就是把 if语句里面的逻辑或switch语句中case里面的逻辑抽取出来,把它放到一个策略类中。这样每个判断都改成了一个类,需要修改的时候只要改对应的类,不用担心影响到其它的类的实现逻辑,方便维护。对于简单的逻辑其实没必要搞得这么复杂,if-else几行代码就能解决。可以看出一旦策略类多了,也很麻烦。

函数式接口

图片
图片

图片

函数式接口相对而言就比较折中,既不要担心if-else中,改动造成其它逻辑影响,代码也不集中在一起,也会想策略模式中存在很多类文件。比较麻烦的是用了lambda表达式,jdk版本会影响,团队中也可能有些小伙伴不会。

在实际使用的过程中在函数式方法中业务逻辑复杂时,也就是if语句块业务复杂。常常把这部分抽取除独立的业务Service。也常配合好策略类一起用。

总之,以上的每个方法行,都有一定的优缺点,if-else都能让人玩出花来,程序员要努力!

if-else有大学问的评论 (共 条)

分享到微博请遵守国家法律