策略模式if-else疑问
来源:19-2 策略模式coding
![](http://img1.sycdn.imooc.com/user/53bbd1b800013e9f01000100-100-100.jpg)
zsm18
2024-03-23
在业务实现层,可以通过策略模式减少if-else,但在具体的策略实现类中若需要根据业务去完成一些业务逻辑类的实现时,此时也是会产生if-else或者if语句的,这个该如何处理呢?因为策略模式是解决if-else嵌套的,但若策略实现类中因业务的某些判断或者逻辑实现时也有可能产生if-else或if的情况,这样相当于策略模式实施的不完全,还是半个策略模式。
因为在2022年时被一面试官有问到具体的实现,我当时说用策略模式来解决if-else嵌套问题,但还是存在在具体的实现类中因业务逻辑的需要,还是会有if-else的判断的出现,这样即使是在service层避免了if-else的嵌套,但在具体的策略实现类中还是会出现if-else的情况,这样就相当于解决嵌套问题没处理完全,只能算半个策略模式的实现
写回答
2回答
-
geelylucky
2024-03-24
同学你好,策略模式的应用几乎可以应用到任何if-else的实现中,但是如果所有的实现细节都使用策略模式,反而是一种过度设计;比如支付模块,可以通过策略模式分割为支付宝支付、微信支付、云闪付支付等,然后在支付宝支付的实现细节中,我们依然还是需要if-else的;策略模式的应用并不是为了抛弃if-else,而是为了让整个应用更有条理,代码逻辑更易于理解;
112024-09-04 -
zsm18
提问者
2024-03-24
了解了 谢谢老师!
00
相似问题