通过spring中getBean来优化if…else…
以用户的会员等级不懂,消费的折扣不一样为例。
很多人都是使用if…else…来解决问题的。if…else…越多代码的性能就越差,执行的效率就越差。一旦出现问题,维护起来也十分的吃力。
说到优化,很多人想到的switch…case…,其实switch…case…本质是和if…else…是一样的。而且代码依然是老长,乱七八糟的。
那么想一想,为什么不把这些不同等级的会员类型和消费金额都提前定义好,作为一个bean,在需要的时候拿到这些bean。给到你想要的结果。
看代码
这是大多数人想到的写法。如果类型在多一点,那就一直if…else…,中间还有相应的业务,把人写屁的了。或者突然哪天就加需求,加个类型,想想就心塞。
要使用getBean,哪要先想到接口。让会各个会员类型实现这个接口,写一个专门做折扣的接口
对不同会员类型,实现这个接口
将一开始写的if…else…删去,重新写
测试方法
测试结果
代码不是最重要的,重要的是思路,如果你学会了,想一想,你以前写的代码,有哪些可以像这样进行改善。想一想以后再写代码前,我是不是可以用到这样的设计模式。