Ich entwickle eine BlackBerry App in Java und habe eine Options-Klasse, in der alle Benutzereinstellungen gespeichert sind. Das Problem ist, dass ich einige Bedingungen überprüfen muss, um zu wissen, wie ich reagieren soll. Wenn ich weitere Funktionen hinzufüge, werden dem Benutzer mehr GUI-Optionen angezeigt, weitere Einstellungen werden in der Optionsklasse gespeichert und es müssen weitere Bedingungen überprüft werden.Was ist der beste Weg, verschachtelte ifs in Code loszuwerden, während Sie nach Bedingungen suchen?
Nehmen Sie den folgenden Code beispielsweise:
private void doCallMonitoring(int callId){
/*This is the part that I want to avoid. Having
multiple nested ifs. Here's just two conditions
but as I add more, it will get unmantainable
very quickly.*/
if(Options.isActive().booleanValue()){
callTime = new Timer();
TimerTask callTimeTask = new TimerTask(){
public void run(){
callTimeSeconds++;
if((callTimeSeconds == Options.getSoftLimit().intValue()) && (Phone.getActiveCall().getStatus() == PhoneCall.STATUS_CONNECTED)){
injectDTMFTone(Phone.getActiveCall());
}else if((callTimeSeconds >= Options.getHardLimit().intValue()) && (Phone.getActiveCall().getStatus() == PhoneCall.STATUS_CONNECTED)){
injectEndCall();
}
}
};
callTime.schedule(callTimeTask, 0,1000);
}else{
System.out.println("Service not active");
}
}
Wie ich möchte es arbeiten alle Optionen mit einem einzigen Anruf zu überprüfen und von dort den Fluch der Handlung zu bestimmen. Wie kann ich ein solches Design erreichen?
Ich empfehle Ihnen, das Buch "Refactoring" von Martin Fowler zu kaufen: http://martinfowler.com/books.html ist ein Muss. – OscarRyz
Danke für die Empfehlung. Ich werde es nachsehen. – Cesar