场景

日常开发,if-else语句写的不少吧??当逻辑分支十分多的时候,if-else套了一层又一层,尽管业务性能倒是实现了,然而看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿态:干掉过多的if-else!!!

本文将介绍三板斧伎俩:

  • 优先判断条件,条件不满足的,逻辑及时中断返回;
  • 融入策略模式;
  • 策略模式+工厂+单例模式,精益求精;

接下来先附上一段很久以前本人写的业务代码,外围逻辑就是在领取回调中依据用户购买的价格包赋予用户对应的权利(VIP视频会员天数+抽奖机会次数)。

我的天,太多if-else了……(看不清楚能够点击图片放大)

1.优先判断条件,不满足及时中断

这点非常容易了解,就是说在业务逻辑外面,先把不符合条件的给先过滤掉,而不是层层嵌套if-else判断,联合代码图看一下:


2.策略模式革新

先用策略模式替换掉文章结尾讲到的,用户充值后依据价格包(付的多少钱)给用户减少VIP天数及抽检机会次数的逻辑,我这里就简化成"依据-价格包辨别给用户减少不同的体育会员视频VIP天数"这个动作来解说:





外表上看,代码略微优雅了点,然而还是没和if-else彻底说拜拜,且recharge()充值办法可独自拎进去,只须要依据priceCode实例化不同的策略对象即可:

3.策略模式+工厂+单例模式,精益求精

接下来应用"工厂类+单例"来给代码加点料:


起源:love1024.blog.csdn.net/article/details/104955363