嵌套if条件的Java代码设计

时间:2016-02-16 23:43:00

标签: java

我需要使用多个/嵌套的if-else来实现以下逻辑。基本上我有三个表,我需要在一个表中插入记录,并根据不同的条件从其他表中删除(在下面的代码片段中解释)。

我已经实现了如下所示,只是想知道是否有更好/可维护的方法来使用OOPS和java中的一些设计模式

if (conditionA || conditionB || conditionC) {
    deleteRecordFromTableA();

    if (conditionB) {
        insertRecordInTableB();
    }

    if (conditionC) {
        insertRecordInTableB();
    }
} else {
    deleteRecordFromTableB();
    deleteRecordFromTableC();

    if (conditionD) {
        validateRecordInUpdateMode();
        updateRecordInTableA();
    } else {
        validateRecordInInsertMode();
        insertRecordInTableA();
    }
}    

1 个答案:

答案 0 :(得分:2)

根据您的代码: -

if (conditionA || conditionB || conditionC) 
{
  deleteRecordFromTableA();

  if (conditionB || condition C)  // can be done together as they both do the same thing
  {
      insertRecordInTableB();
  }
}
else 
{
  deleteRecordFromTableB();
  deleteRecordFromTableC();

  if (conditionD)
  {
    validateRecordInUpdateMode();
    updateRecordInTableA();
  }
  else 
  {
    validateRecordInInsertMode();
    insertRecordInTableA();
  }
}  

另一种方式(可能更容易理解)是: -

if(conditionA)
{
  deleteRecordFromTableA();
}
else if (conditionB || condition C)
{
  deleteRecordFromTableA();
  insertRecordInTableB();
}
else if(conditionD)
{
    deleteRecordFromTableB();
    deleteRecordFromTableC();
    validateRecordInUpdateMode();
    updateRecordInTableA();
}
else
{
    deleteRecordFromTableB();
    deleteRecordFromTableC();
    validateRecordInInsertMode();
    insertRecordInTableA();
}