关于if else的优化案例

原文地址:https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247486178&idx=2&sn=cb43303bfc432311cc9374339c231627&chksm=fa497553cd3efc452accc9b5ff39608f38a22f40d7e1f3d66444cb834c8eecd0006ff3df7b0d&scene=0#rd
通过实际例子简化一下,仅用于个人记录。
案例交代:controller类方法在处理前端请求时,需要根据type作不同的业务处理
案例代码:

if("1".equals(type)){ ............... }else if("2".equals(type)){ ............... }else if("3".equals(type)){ ............... }else if("4".equals(type)){ ............... }

【关于if else的优化案例】案例产生的后果:如果业务复杂,每个业务需要构建的代码量会十分庞大,不便后期阅读,而且type的值以后可能还会增加
优化方案:利用工厂方法简化controller方法,将各个业务场景分配到不同的模块,使之便于跟踪
优化代码:
//根据type获取对应的业务实例 BaseTargetService service = getTargetInstance(type); //执行实例方法 service.process()

工厂方法:
public BaseTargetService getTargetInstance(String type){ BaseTargetService service = null; if("1".equals(type)){ service = new TargetServiceA(); }else if("2".equals(type)){ service = new TargetServiceB(); }else if("3".equals(type)){ service = new TargetServiceC(); }else if("4".equals(type)){ service = new TargetServiceD(); } return service; }

    推荐阅读