如何用多例干掉if-else

87 阅读1分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第n篇文章,点击查看活动详情

前言

都说PHP是世界上最好的语言,作为四年的phper,虽然谈不上技术有多高深,但是却深信这句话,不喜勿喷哈。也有大佬鄙视,说PHP语言写法混乱,不严谨,问题较多等,依在下的浅薄见解认为上述的诟病在于使用者吧。最近在看了些设计模式之后,有了一点想法,所以准备跟大家分享下。

实战

1.我们先来看两段大家都熟悉的写法

假设我们有一个需求,根据不同类型,处理不同的复杂业务逻辑,这里我们举一个简单的栗子: 根据不同的type类型,计算费率,代码如下:

image.png

可能有大佬会说,换成switch

image.png

其实这么写已经很简单明了,比较符合规范,那么怎么把代码写得工资高一点呢?

2.如何干掉这些if-else

先定义一个枚举

image.png

在定义一个工厂

image.png

在定义一个基类吧

image.png

接着我们定义一下不同的type对应的子类,并重写一下父类的方法

image.png

我们再来写一下刚开始的栗子

image.png

3.结束语

确实没有了if-else,但是增加了代码的量,代码的可读性变差了,可维护性不好说,需要根据业务的复杂程度评估。但是目的达到了,没有了if-else。至于生产的实用性虚心请教各位大佬的意见~