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