Мне нужно написать логику со многими условиями (до 30 условий) в одном наборе правил со многими условиями if else, и это может закончиться между или после всех условий.Нужны предложения по дизайну для вложенных условий
Вот пример кода, который я пробовал с возможным сценарием. Это дает мне результат, но не выглядит хорошо, и любые незначительные промахи в одном условии будут навсегда отслеживаться.
Что я пробовал до сих пор, Выньте общие условия и переработайте некоторые методы. Пробовал создавать интерфейс с условиями и различными наборами, чтобы реализовать его.
Если у вас есть предложения по проектированию этого, мне бы помогли. Не искали подробного решения, но даже подсказка была бы замечательной.
private Boolean RunCondition(Input input) {
Boolean ret=false;
//First if
if(input.a.equals("v1")){
//Somelogic1();
//Second if
if(input.b.equals("v2"))
//Third if
if(input.c >1)
//Fourth if
//Somelogic2();
//Go fetch key Z1 from database and see if d matches.
if(input.d.equals("Z1"))
System.out.println("Passed 1");
// Fourth Else
else{
System.out.println("Failed at fourth");
}
//Third Else
else{
if(input.aa.equals("v2"))
System.out.println("Failed at third");
}
//Second Else
else{
if(input.bb.equals("v2"))
System.out.println("Failed at second");
}
}
//First Else
else{
if(input.cc.equals("v2"))
System.out.println("Failed aat first");
}
return ret;
}
public class Input {
String a;
String b;
int c;
String d;
String e;
String aa;
String bb;
String cc;
String dd;
String ee;
}
Было бы намного проще, если бы вы a) вдавили его разумно, б) использовали 'else if'. –
Речь идет ни о моде, ни о дизайне. Речь идет о написании процедурного кода. –
Я думаю, чтобы получить правильный ответ на вашу проблему, вам нужно будет объяснить, как вы закончите с этой логикой. Возможно, вы можете использовать шаблон дизайна фильтра или правильное OO, которое может решить вашу проблему. – Mzf