策略模式,替换掉屎一样的if-else语句。好,那我们来在这里看一下啊,就是整个,这个策略模式呢,它的英文叫做strategy,然后,就给出一个场景吧,还是,这个场景其实也很简单,就是说是,我们可以根据不同的这个参数,来选择一种,然后我们,来选择一种我们想要执行的这个优惠计价方式,可以看一下,这句话换成代码的话,怎么来做,先看一下那个不用模式的一个方式啊,WithoutStartegyPatternDemo,然后这块的话,它是这样的,我们就直接来写一段代码吧。
有一个参数,是discountStyle,如果这个参数是1,那么选择一种这个优惠计价的方式,如果这个参数是2,选择一种优惠计价的方式,然后那个,如果参数是3,选择一种优惠计价的方式,那么这个怎么玩,比如说我们这discountStyle=1,假设说这个代码是这么写的,discountStyle,如果说它等于1,选择那个执行优惠计价方式1的那个复杂业务逻辑,然后这边,else if(discountStyle == 2),然后这边是,System.out.println("执行优惠计价方式2的复杂业务逻辑");,然后这边else if(discountStyle == 3){ System.out.println("执行优惠计价方式3的复杂业务逻辑");},ok,就是这样一段代码,非常非常的常见啊。但是实际上,我这里写的很短,但实际上在我们的业务代码中,这个if-else看起来,绝对不是这么短的,然后第二的话呢,就是它也不是那个,就是这么简单吧,对吧。那么在实际的业务代码中,常见的结构是上面这样的,但是每个if和这个if-else之间的这个代码行数,可能多达几十行,甚至几百行,ok,然后另外的这个if和else if的这个判断条件,很模糊,经常就是用一堆这种变量,然后变量的这种比较,来判断是哪个分支,就是类上面这种代码,在代码写好以后,一年之后,回过头来看这个代码,我撒,好像是看到了一坨屎一样,大家不要笑啊,我为什么老是说屎一样的代码,因为就是咱们说话的时候,别说虚的,说点干的,就是这种写出来很差的代码就是跟屎一样,这代码它就是屎,为什么屎呢,因为像这样的代码