缘起
在业务团队写代码,经常会遇到这种情况,产品经理来个需求,好的,我们加个字段,加个if else. 谢晞鸣最近总结了一些比 if else 优雅一点的套路,能够让自己代码的逼格看起来稍微高点。很多时候分支是不可避免的,不同的业务,肯定要走不同的分支,我这里所谓的优雅套路,本质上就是用一个 Map 将 “条件” 和 ”业务处理逻辑“ 两者映射起来。
这里假设我们的项目是基于Spring的。文章中列的代码是不完整的,说明意思即可。
if else
有这样一种业务场景,我们做保险产品项目,不同产品核保的逻辑是不一样的(对年龄、限额、职业、性别等等的要求都不一样),假设有两个字段, productCategory, productSubCategory 用于区分不同类型的保险(万能险、投连险、养老险、产险等)。我们可以这么写1
2
3
4
5if (productCategory.equals("XXX")){
processXXX();
} else if(productCategory.equals("YYY")){
processYYY();
}
优雅的套路
我们也可以设计这样一个结构来处理这种业务,将我们的 ”条件”(即产品类型) 和 “业务处理逻辑”(即核保逻辑) 映射起来, 下面是一个很简单的 demo: