原文地址: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;
}