`

如何使用设计模式去除if else的硬编码语句呢?

 
阅读更多

 

如何去除if else的硬编码语句呢?

 

在代码中经常碰到if else 语句,当你看到这些硬编码的if else时有没有想处理掉的冲动呢?

 

if else的判断逻辑是不是比较简单,简单到只是某个字符串的相等判断,if else 要干的事情,是侧重处理 handle 还是侧重算法,如果意图是处理,那么可以考虑是命令,如果意图是算法,那么可以考虑是策略。那么如何产生这些handler,或者strategy呢?当然是工厂模式了。但是在工厂模式或者创建方法,还是有if else 语句啊。不论是工厂中使用class反射,还是new。

 

我们只是通过构建Map,通过Spring注入到类中,再通过key来得到某个实现类,这些实现类都是实现了统一的一个接口,这样就去除了if else的硬编码语句。

你可以把抽象出来的接口看作command,也可以看作strategy,关键看是你的意图是什么。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics