Ich muss die Logik mit vielen Bedingungen (bis zu 30 Bedingungen) in einem Regelsatz mit vielen wenn sonst Bedingungen schreiben und es könnte zwischen oder nach allen Bedingungen enden.Benötigen Sie Entwurfsvorschläge für verschachtelte Bedingungen
Hier ist der Beispielcode, den ich mit einem möglichen Szenario versucht habe. Dies gibt mir ein Ergebnis, aber es sieht nicht gut aus und jede kleine Verfehlung in einer Bedingung würde ewig dauern, um sie zu verfolgen.
Was ich bisher versucht habe, ist, Gemeinsame Bedingungen herauszunehmen und einige Methoden zu überarbeiten. Versucht, eine Schnittstelle mit Bedingungen und verschiedenen Mengen zu erstellen, würde dies implementieren.
Wenn Sie einen Vorschlag haben, dies zu entwerfen, würde mir helfen. Nicht auf der Suche nach einer detaillierten Lösung, aber auch ein Hinweis wäre großartig.
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;
}
Es wäre viel einfacher, wenn Sie a) es sinnvoll einbetteten, b) "else if" benutzten. –
Dies ist weder oop noch Design-Muster. Es geht nur darum, prozeduralen Code zu schreiben. –
Ich denke, um die richtige Antwort für Ihr Problem zu finden, müssen Sie erklären, wie Sie mit dieser Logik enden. Vielleicht können Sie das Filter-Design-Muster verwenden oder die richtige OO kann Ihr Problem lösen – Mzf