嵌套if条件的Java代码设计

嵌套if条件的Java代码设计,java,Java,我需要用多个/嵌套的if-else实现以下逻辑。基本上我有三个表,我需要在其中插入记录,并根据不同的条件从其他表中删除(在下面的代码片段中解释) 我已经按照下面的方式实现了它,只是想知道是否有更好的/可维护的方法来使用OOPS和java中的一些设计模式来实现它 if (conditionA || conditionB || conditionC) { deleteRecordFromTableA(); if (conditionB) { insertRecord

我需要用多个/嵌套的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();
    }
}    
根据您的代码:-

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();
}