在java中重构大型switch语句的最佳方法是什么?

时间:2013-12-17 03:40:34

标签: java oop design-patterns refactoring

我有一个粗略的切换声明,我需要弄清楚如何改进。我立即想到工厂模式,但我不知道我是否想要实际使用对象用于这些目的。你怎么能减少这段代码的详细程度呢?

2 个答案:

答案 0 :(得分:4)

如果我去,我会

  • 定义Validator界面
  • 为长度,宽度,角度实现此接口。
  • 使用键作为索引和值定义<Integer, Validator interface>的映射作为相应的Validator实现
  • 在for循环中,根据索引获取相应的Validator实现并运行它。

HTH。

答案 1 :(得分:2)

Viktor拥有首选解决方案,但如果你要做的就是减少代码,但保留你可以的结构。

变化

if (isValidBorrowAmount(amount) == false) {
    isValidValue = false;
    print("That value does not work here");
}

isValidValue = isValidBorrowAmount(amount);

并在切换块之后

if(!isValidValue){
    print("That value does not work here");
}