遗留代码( VB脚本)中有很多嵌套if else语句,我希望将其迁移到有意义的表示形式,以便在中轻松维护Java 应用程序。这些语句中的大多数用于根据用户对参数的选择生成sql语句。有没有建议将这个逻辑分支问题更好地建模为数据结构,即指向图形?
例如,如果参数是:
年龄 部门 等级
String finalSQL = “”;
if(department is not ‘HR’){
// append something to finalSQL
if (age between 21-35)
{
// append something to finalSQL
}
else if (age between 35-40)
{
// append something to finalSQL
}else{
// append something to finalSQL
}
} else {
if(grade > g7){
// append something to finalSQL
}else if (grade is g2 or g4 or g6){
// append something to finalSQL
} else{
// append something to finalSQL
}
}
return finalSQL;
答案 0 :(得分:-1)
多个if else语句的一个替代方案,其中这些条件表示特定状态,如果它们是简单命令,我通常会选择State Design Pattern或command Pattern
想想自动售货提及哪里取决于机器的状态如空/非空/没有硬币,你有特定的行为
另一种可读的方式是switch-case语句,但这主要是使它更具可读性
请参阅此Converting many 'if else' statements to a cleaner approach