Java 代码 switch 分支过多,怎么改写比较优雅呢?

查看 428|回复 38
fredli   
@nothingistrue 一看就是老 coder 了
zhady009   
抽象类继承,消息子类,多态
lysS   
每个消息类型对应一个 ActionChain, Action 对应具体的业务
关于消息类型和 ActionChain 的关系建立可以是硬编码, 也可以用 Spring 的 BeanPostProcessor+注解的方式
lyusantu   
信息类型是确定的,可以用数组
ianEros   
保持 switch 写法
写完后折叠 switch 看起来就比较优雅了
NoKey
OP
  
复杂一点写策略,简单逻辑表驱动
lambdAlan   
@ql562482472 就是 switch 下面十几个 case ,可能还会增长,到一定时候,肯定不好看,一大片的 case😂
ianEros   
策略模式加工厂模式即可
NoKey
OP
  
Map action> actionsMap = new HashMap();
// 初试配置对应动作
actionsMap.put(value1, (someParams) -> { doAction1(someParams)});
actionsMap.put(value2, (someParams) -> { doAction2(someParams)});
actionsMap.put(value3, (someParams) -> { doAction3(someParams)});

// 省略 null 判断
actionsMap.get(param).apply(someParams);
libook   
@lyusantu 看不见就好了么?🤣
您需要登录后才可以回帖 登录 | 立即注册

返回顶部