Map+函数式接口方法替换if/else
作为本际云服务器推荐网的小编小本本,今天想和大家分享一种优化业务逻辑分派的方法——Map+函数式接口。在之前,我们经常使用if/else和switch/case语句块来完成业务逻辑的分派。但是,这种方式使用起来代码太长、可读性差,而且不好维护。

需求背景
在一个项目中,根据数据库字段type的不同,会有不同的处理逻辑。假设一个场景:根据优惠券的类型resourceType和编码resourceId来查询发放方式grantType和领取规则。
优化思路
传统的if/else和switch/case分派方式难以满足我们的需求,而策略模式虽然比if/else好维护一点,但依然无法支持俯视整个业务逻辑。于是我们可以尝试使用Map+函数式接口方法。
具体实现方式是:把判断条件放在Map的key中,对应的业务逻辑放在value中。这样写非常直观,能直接看到判断条件对应的业务逻辑。
如果单个if语句块的业务逻辑有很多行的话,我们可以把这些业务操作抽出来,写成一个多带带的Service。这样做的好处是,能够将if语句块的逻辑抽出来写成一个类,更加易于维护。
使用Map+函数式接口可以代替if-else的业务分派,可以避免策略模式带来的类增多、难以俯视整个业务逻辑的问题。
以上就是本际云服务器推荐网小编小本本今天为大家带来的优化业务逻辑分派的方法Map+函数式接口。希望能够帮助到大家,如果您有更好的优化方式,欢迎分享给我们哦!
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6265.html
