跟我一起来优化你的if else

今天是年前最后一天上班,不好意思,本博主一点也不浮躁。

前几天在公众号推荐的文章里,看到了别人优化if else 的解决方案,趁着今天没有什么任务,我也来优化一下自己项目里的if  else 。原谅本博主不是什么核心人物,所以自然也没做什么核心的功能。今天就优化一下支付失败、成功的通知。

业务需求是这样的,支付包括购买会员,购买钻石,购买超级喜欢,购买超级曝光。先看看看我们之前的代码是这样的:

跟我一起来优化你的if else

跟我一起来优化你的if else

这是两处代码,都是为了区分会员支付或者购买钻石支付。而优化的最终目的就是省去过多的if  else。采用的方式是策略模式+工厂模式+单例模式。这叫照猫画虎,我只能想明白为什么用策略模式,至于工厂模式和单例模式还没来得及想清楚。

接下来,搬出我优化之后的代码,如有不妥,请多指教。

1. 策略接口

跟我一起来优化你的if else

2.各种策略的实现类,有会员的、钻石的等,例举其一:

跟我一起来优化你的if else

3. 策略工厂类,请注意单例模式的另一种写法

跟我一起来优化你的if else

    1) 构造方法一定得是私有的,我参照的那篇博文构造方法是公有的,这样就不符合单例模式的规则;

    2)利用jdk1.8的stream,将List转换成map,其实我也没明白,为什么不直接用Map。

    3)单例模式利用内部类实现。

真正实践的地方在这里:

跟我一起来优化你的if else

跟我一起来优化你的if else

因为每一步都需要判断空,所以利用了jdk1.8的Optional。

 

今天突然想到一句话,一切不以结婚为目的的谈恋爱都是耍流氓。我觉得一切不以优化代码或者实际应用的学习也是耍流氓,所以小伙伴们,把你们学习到的东西真正实践到项目中来,对你对它都是一种价值。